Hugo v0.60.0以降では標準でHTMLのレンダリングを無効化する機能が追加されました。意図しないコードを実行され、ユーザに出さないための対応だと思われます。
しかし、同時に他システムから移行したサイトの場合、HTMLタグが残っていることもあるためHTML出力を有効にする必要があります。少し戸惑ったので対応した内容をメモ。
このサイトの遍歴
ブログをhugoに乗り換えた :: focusmarkにも記載していますが、以前Movable Typeを利用して運用を行っていたブログをHugoへ自前のテンプレートを利用して移行しました。Movable Type時代は一部Markdownで記載しているものもありましたが、記事部をほぼHTMLで出力していたこともあり、ほとんどの記事がHTMLでの出力です。
また、画像リンクも同様に幅を一意の幅にしたい、ということもあり、HTMLタグで入力していました。普通にコードとかを羅列しているだけであれば大きな影響を受けないと思います。
結局何をしたのか
サイトのconfig
ファイルに以下の内容を記述しました。これから新規ではじめる場合、HTMLタグを使うことは多くないと思いますが、極力サーバ数を少なく運用したい、などのニーズも一定数あると思っています。(GitHubでコード管理してて、ブログもMarkdownで管理したい、など)
私の場合はtoml
形式であるため、config.toml
に以下の記述を追加して対応しています。
[markup]
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true
参考: Now CommonMark Compliant! | Hugo
確認を行うことは大事
今回の場合はソースコードレベルで確認したので良かったですが、バージョンアップ後にローカルで確認していなかったことが要因です。(プライベートなので許されるけど)
ローカル環境やステージング環境で確認を行った上で本番サイトへ適応させる、という流れを作っていく必要はあると思います。レビューなどの仕組みを入れる場合は、文面以外にも表示されているか、を確認することを忘れないようにしたいものです。