成果物
System Crafters の投稿 と ソースコード を元に、 org-mode
でブログ生成してみました:
該当のブログ記事はこちらです 。デザインは Simple.css です。
org-mode
へのモチベーション
元々 org-mode
へのモチベーションはありませんでした。むしろ AsciiDoc にこだわっており、 専用の SSG を作ったりしました 。ただデザインが良くなかったので、一時的に org-mode
に移行してみました。
org-mode
で記事を書いてみると、エディタの見た目が良くて嬉しくなりました:
WYSIWYG ではないですが inline style? って良いですね。細かなエディタサポートも豊富です。 レスポンスが良いのが嬉しい というのが org-mode
を使うモチベーションになると思います。この辺は 実際に使ってみないと分かりませんでした 。
org-publish
を SSG として使う
System Crafters の投稿 に沿うと、 ビルドスクリプトは ELisp で書きます。ビルドスクリプトの内容は、 org-publish
の設定・呼び出しや backend (後述) の設定です。
org-publish
には以下のような内容が可能です:
- パタンマッチしたファイルをビルドして出力フォルダに写します
- sitemap (記事一覧の
index.org
) を生成します -
記事パーツの HTML 変換 ("フィルタ") をオーバーライドします
- たとえば
org-mode
のコードブロックを Prism.js 対応の HTML に変換します
- たとえば
テンプレートやフィルタの集まりを backend と呼びます (たぶん) 。バックエンドを差し替えられるようにすることで、 org-publish
は高い拡張性を確保しているようです。 HTML 出力を調整したり、 HTML 以外の形式 (PDF など) で出力することもできます。
org-publish
の HTML 初期出力が合わなかったので、 esxml (S 式で書く XHTML) でテンプレートを作ることになりました。意外と盛り沢山の試行錯誤を経験できました。
まとめ
Emacs を使っていると楽しいことが色々ありますね。