静的サイトジェネレーターzola で gist を表示する方法
結論 / 主要な発見
rust 製の静的サイトジェネレーター zola で gist を含むページをジェネレートするには、 templates/shortcodes/
に gist 用のショートコードを配置する。
再現性は不明ですが、私の手元環境では、zola version 0.15.3
では必要なく、 0.18.0
では必要でした。
背景・問題
当ブログは rust 製の静的サイトジェネレーター zola でジェネレートされています。
記事中で、プログラムコードの記載に gist
を利用ています。
この gits を利用している記事で、サイトのジェネレートが失敗しました。
詳細
今までは zola version 0.15.3
でビルドできていました。
zola version 0.18.0
を用いた際に、gist
を含むマークダウンで記述した記事がジェネレートできなくなりました。
その際の操作は以下のとおりです。
zola build
得られたエラーメッセージは以下のものです。
Error: Failed to build the site
Error: Failed to render content of `ビルドに失敗した markdown file のパス`
Error: Reason: Found usage of a shortcode named `gist` but we do not know about. Make sure it's not a typo and that a field name `gist.{html,md} exists in the `templates/shortcodes` directory.
どうやら、gist
を用いた部分のジェネレートに失敗するから、templates/shortcodes
に gist
に当たる変換コードを配置せよということのようです。
gist
の記事中への挿入は、マークダウンに以下の形式で記述していました。
<div class="gist">
<script src="https://gist.github.com/AmanouToona/a6bc2f208c58806a60a7d49a3d5ea8c2.js"></script>
</div>
このマークダウンを変換するために、以下の内容のtemplate/shortcodes/gist.html
を配置します。
<div class="gist">
<script src="{{ url }}.js"></script>
</div>
これで、gist
のリンクを含む記事がzola build
でビルドできます。
結語
zola
では、markdown
側から、生成する html の内容を指定するには template
を用います。
template
は templates/shortcodes
に配置します。
今まで何故かテンプレートを配置せずにビルドが通っていたために、ビルド失敗の解決に手間取りました。