Skip to content
Go back

Hugoのエスケープ処理

· Updated:
  • リンクに+が含まれるとビルドエラーになる問題
  • ++にエンコードされていた
    • &はHTMLで記号を正しく表示するための記法
    • URLでは#に特別な意味があるので、リンクが壊れてしまっていた
  • Hugoは安全のために既定で文字列をエスケープする仕様なので、そうされたくない場合はきちんと明示する必要がある
    • safeURLとか、safeHTMLとか、safeHTMLAttrとか
  • 今回は、render-link.html+%2Bに置換することで対処した
    • safeHTMLを付ければ根本的に解消されるけど、悪意あるコードが挿入できたりしてしまうと嫌なので

記号が含まれるリンク#

+

:

+以外は消されている?

2025/07/15追記:ドットが含まれるリンクはURL解決に失敗することがあるようなので、使用しないようにします。また、他の要素の区切り文字がファイル名に含まれると置き換えられてしまう可能性があるので、使わないようにします。

2025/07/23追記:これで、ドットを含むリンクに関しては問題が解決しましたので、使っても大丈夫です。

参考文献#