Hugoにおける拡張Markdown記法の定義リストのサポート状況

Tags: Hugo

以前Hugoで最初に書いた記事にて、Markdown拡張の定義リスト(<dl><dt><dd>)が使えないので後で調べないと、みたいなことを書いてからだいぶ時間がたったけど、ようやく重い腰を上げてHugoのMarkdownレンダリングまわりについて調査してみた。

Hugoで使っているMarkdownパーザーはBlackfridayとのことで、READMEを見る限りでは、世の中のメジャーなMarkdown拡張記法を含むいろいろな機能をサポートしているように見える。

で、Hugoの公式ドキュメントを眺めていると「Configure Blackfriday rendering」というセクションがあり、このへんのオプションをあれこれすることでBlackfriday側の設定を変えることができるらしい。ざっと見たところ、導入したい拡張機能の名前をextensionsに列挙すればよさそうだが、そのへんはBlackfridayのソースを見て察しろという感じの投げっぷり。実際にextensionsに指定する具体的な名前は、Blackfridayのmarkdown.goで定義されている定数名から頭のEXTENSION_を削ってlower camel caseにすればいいみたい。

Blackfridayソースを見るにEXTENSION_DEFINITION_LISTSというのがあるので、以下のようにconfig.tomlのextensions"definitionLists"を追加してみたが、定義リストは使えなかった。

[blackfriday]
  extensions = ["definitionLists"]

ちょっと調べたところ、最新のソースでは、Hugo側でのdefinitionListsの指定が、Blackfriday側のEXTENSION_DEFINITION_LISTSにちゃんとマッピングされていた。手元で使っているv0.14の時点では、この修正がまだ入っていない模様。

というわけで、定義リストを使いたい人は、最新版のソースを取ってきてビルドするか、あるいは次のバージョンのバイナリがリリースされるまで待て、ということですかね。