generated at
Front Matter
なんか、コンテンツの Markdown の先頭に構造化メタデータを記述できる仕組み、みたいな理解。あっている?ぼくが自分で運営している june29.jp で使っている Hugo に組み込まれているので、特に仕様を強く意識することもなく「こういう感じのもの」として活用してきた。あと、ぼくが触れてきたものでは MiddlemanFront Matter を取り入れている。

Front Matter の発祥の地は Jekyll なのかしら…?


Jekyll のドキュメントを見ると「YAML を書けます」という感じ。Hugo では YAML の他に TOMLJSON も書ける。MiddlemanYAMLJSON をサポートしている。

hr

YAML の例

yaml-sample
--- a: 10 b: - 20 - 21 - 22 c: d: 30 --- # Title Paragraph.

こんな感じで --- --- の間に YAML を書く。

JSON の例

Middleman では ;;; とセミコロン 3 つで囲うことになっている。

json-sample-on-middleman
;;; "layout": "custom", "my_list": [ "one", "two", "three" ] ;;; # Title Paragraph.

Hugo では { } で囲ってやるみたい。

json-sample-on-hugo
{ "layout": "custom", "my_list": [ "one", "two", "three" ] } # Title Paragraph.

TOML の例

Hugo では +++ で囲って書くことになっている。

toml-sample
+++ a = 10 b = [20, 21, 22] [c] d = 30 +++ # Title Paragraph.

hr

これ!という仕様がなくて、いろんな実装のみが存在している状態…? Markdown の雰囲気と似ている。ぼくと同じような疑問を持った先人がいて Stack Overflow で質問を立てたりしていたみたいだな。

自作のソフトウェアの中で Front Matter を扱う機運が出てきたのだけれど、なにが仕様なのかよくわからなくてテストコードを書く手が止まってしまったので、軽く調べていた。

ちなみに GitHubYAML スタイルの Front Matter をパースしてくれるようで、下記の例のようにデータが HTML の table で表示される。JSONTOML は対応されていないみたい。