Jekyllで記事を書き始めるためのRakeタスク
OctopressからJekyllにしてちょっとだけ困ったのが記事の書き始め。
Octopressには雛型っぽいものを作ってくれるRakeタスクがあった。Rakeの[〜]
記法を使わなければならないのはいまいちだったが、なくなってみると困るものだ。そういうわけで、Octopressで不満だったところを自分なりの解消しつつ、なんとなくそれらしい感じに動くJekyll向けのタスクを書いてみた。(たぶんOctopressでも使えると思う。)
まず新しく記事を書き始める手順。
% rake new
環境変数EDITORに従ってエディタが起動する。frontmatterのdateには現在の日時が入っている。layout
やcomments
など、基本的に決め打ちなので変更したければタスクをいじること。カテゴリやタグをいくつかに絞っているなら最込から列挙しておくとよいかも。
_filename_
という見慣れないフィールドがあるが、これは_posts
にファイルを保存する際、ファイル名として使う文字列を記述するために独自に使用しているもの。これとdate
の内容からファイル名を構成する。
_filename_
がなかったり、空だったり、初期状態のままだったりしたら無視される。そういうときにはdate
とtitle
からファイル名を構成する。
なお、_filename_
はこのためだけに勝手に使っている。ファイル名を構成したあとは用なしになるので、記事ファイルを_posts
に保存すタイミングで削除される。
記事を書き終えたら公開するが、公開して、その直後に直しが入るなんてことはよくある。最後に編集した記事ファイルをもう一度開くタスクを用意した。
% rake last
mtimeが最も新しいものを選んでエディタを起動する。更新日時ではなく、ファイル名に含まれる日付が最も新しい記事ファイルを開くには次のタスクを使う。
% rake latest
frontmatterのdate
までは見ていなくて、あくまでファイル名から判断している。
重要なこと
rake new
してエディタを終了させたとき、何らかの理由でファイルの移動ができない状況になることがあるかもしれない。できる限り記事の中身を残すようにしたつもりだが、抜けがあるかもしれないので注意すること。
あと、変なバグでコケるとかあるかも。
様子をみながら使ってください。