ox-hugo は emacs のパッケージだ。 org-mode の文章を Hugo に対応した markdown にエクスポートすることができ、このサイトの記事を書くのに使われている。
ox-hugo の特徴として、一つの記事が一つのファイルではなく一つのサブツリーに対応しているという点がある。 一つの org-mode ファイルの中にいくつも記事を書き、記事ごとにタイトルやタグを設定してエクスポートすることができる。 記事を書いている途中で過去の記事を確認したり手直しすることが簡単に行えるので都合がいい。
このサイトは一つの大きな(現在7000行ぐらい) org-mode ファイルからできていて、一つ一つの記事はサブツリーに対応している。
ox-hugo は紹介文が “A carefully crafted Org exporter back-end for Hugo” となっているだけあって、 かゆいところに手が届く機能が揃っている。例えば
- org-mode で記事を TODO にするとエクスポートされたとき
draft=true
となる - org-mode のタグが hugo のタグになる
- 記事ごとに tag 以外の taxonomies (layout, categories など) を設定できる
- 記事ごとにエクスポート先のフォルダ名とファイル名を決められる
- org-mode のファイルを保存するたびに自動でエクスポートが行われる
がある。
加えて ox-hugo のソースコードは大して長くないので、 気に入らない部分があれば好きに改造していける。 自分が施した変更はここから見れる。
参考資料
GitHub - kaushalmodi/ox-hugo: A carefully crafted Org exporter back-end for Hugo