Skip to content

toona note

静的サイトジェネレーター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/shortcodesgist に当たる変換コードを配置せよということのようです。

gist の記事中への挿入は、マークダウンに以下の形式で記述していました。

<div class="gist">
  <script src="https:&#x2F;&#x2F;gist.github.com&#x2F;AmanouToona&#x2F;a6bc2f208c58806a60a7d49a3d5ea8c2.js"></script>
</div>

このマークダウンを変換するために、以下の内容のtemplate/shortcodes/gist.html を配置します。

<div class="gist">
  <script src="{{ url }}.js"></script>
</div>

これで、gistのリンクを含む記事がzola build でビルドできます。

結語

zola では、markdown側から、生成する html の内容を指定するには template を用います。
templatetemplates/shortcodes に配置します。
今まで何故かテンプレートを配置せずにビルドが通っていたために、ビルド失敗の解決に手間取りました。

参考