[Hugo] front matterの形式はyaml, toml, jsonのどれを選んだ方がよさそうか?【個人的にはjsonにしておけばよかった】

アイキャッチ画像


記事内に商品のプロモーションを含む場合があります。

Nプログラマ(@Nprog128)です。

Hugoで記事を作成する時に書くfront matter(記事冒頭に書くメタデータみたいなアレ)を書きますが、皆さんはどの形式を使っていますか?

  • yaml
  • toml
  • json
なプ

結構悩みどころではあるんですよね。。。

どれが一番良さそうかと言われると、ぶっちゃけどれでもいい、が個人的な見解になります。

一番手に馴染んでいるもの、好きなものという感覚で選べばいいと思います。

自分はyamlを使っていた時期があるので、yaml一択でした。

なプ

yamlは特殊な文字を使わない限り、ダブルクォートとかで囲まないのが楽なんですよね。

Hugoで普通に記事を書く分には基本的に差は出ない、と感じています。

ただ、、、

front matterの内容を外部スクリプトを使って書き換えることを予定している場合には、jsonにしておいた方がいい、と個人的には強く感じました。

なプ

レアケースかもしれないですが、、、(汗)

理由: インストール後にすぐ使える

JSONの入出力処理は標準のライブラリとして提供されているものが多く、特に準備せずに言語をインストールすればすぐ使える、というのが理由ですね。

とか言いつつ、まだ3つの言語くらいしか試したことがありませんが、、、

言語入力出力
phpjson_encodejson_decode
rubyJSON.load etc..JSON.generate etc..
pythonjson.loads etc..json.dumps etc…
なプ

PHP以外は小さなサンプルのみしか使ったことないです orz

これがyamlやtomlになると、別途ライブラリのインストールという作業が必要になってくる言語もあります(見聞のみで実体験はPHPのみしかないですが、、、)

実際にPHPでyamlやtomlを使ってみたのですが、たしかに使えるようにはなります。

ただ、Hugoのfront matterを編集するためだけに準備するのも、ちょっと大掛かりかなぁ、、、と思うトコロもあり。。。

なプ

利用するためにライブラリの使い方を読んだりする必要もあります(tomlのライブラリがそうだった)

気持ち的には、Hugo + 言語のインストールですぐにJSONを扱える状態であるのが理想です。

振り返ってみると、front matterはJSONを選んでおけばよかったかぁ、、、とか思ったりするのです。

JSONで書く時のデメリット

front matterには決まりきった記述しかしませんが、あえて言うならデメリットはダブルクォートですかね。

keyとvalueをいちいちダブルクォートで囲む必要があるので、入力する時に若干ストレスを感じます。

なプ

本当にちょっとしたコトなので我慢しろ自分、って言いたいんですがね。。。

その辺はarchetypes/post.mdに雛形を準備して、なるべくスムーズに入力できるようにしています。

終わりに

今回は、Hugoのfront matterの形式はyaml, toml, jsonのどれを選んだ方がよさそうか?、という内容でした。

個人的にはJSONにしておけば良かった、と思っています。

なプ

で、これからJSONに書き直していきます(決意表明)

一括置換用のスクリプトを書いて、ごっそりと入れ替えようと思います。

ちなみに、front matterは記述を混在させることができるみたいなので、手でコツコツと書き換える手もありますね。

なプ

記事数を考えるとツラいので、なんとしてもスクリプトでやります(血眼)

それでは、このへんで。
バイナリー!

\ ちょっとお買い物 /


関連した記事