同じネタで何個か記事を投稿してると、せっかくだからまとめて一つのページをつくりたくなる。特にこの「Jekyllの環境構築」シリーズとか。

そこで、Jekyllの機能を使ってまとめページを作る仕組みを考えてみる。

まず、要件的には

  • 何度でも楽に作れるように汎用的にする
  • rubyのコードは書かずにテンプレートの機能で実装する

というところだけは譲れない。

そこで、参考になる機能やコードがないか探したところ、「 _includes/JB/page_list 」が参考になりそう。

ということで作ったものがこれ。

_include::JB::extraction_include/JB/extractionextraction という名前で保存し、 example.html をルートに置いてビルドすると、タイトルに「タイトル」とついてる記事が本文の一部付きで時系列順に並ぶ。

やってることは単純で、 example.html で記事の一覧とページのタイトルを JB/extraction に渡し、 JB/extraction では記事一覧を古い順に走査してタイトルの一部に渡したページのタイトルの一部があるポストを表示する仕組み。
表示する時はページの本文を markdownify でHTMLに変換し、htmlタグと改行を取り、256文字にまとめて要約っぽく表示する仕掛けもつけてある。

このBlogでは、連載者に同じ接頭詞をつけてるのでページタイトルをキーワードにしてシンプルに書けたけど、作りによってはタグとかをキーにしてもいいかもしれない。

で、出来上がったページが Jekyllの環境構築 。デザイン的にもう少し調整したい部分もあるけど、なかなかいい感じに出来た。

Blogってのは書きっぱなしになって続きの記事とかがわかりにくくなったりするから、こういうまとめページを用意しておくっていうのはなかなかいいことなんじゃないかと思う。

それも、ルールに従って裏で自動的にリストアップされるなんて、素敵だと思わない?