feed

2013年11月18日, 編集履歴

Jekyllの最新記事と関連記事

 Jekyllのsite変数はpostsrelated_postsメンバを持つ。postsは全ブログ記事が新しい順に入っており、related_postsは処理中のブログ記事に関連している記事が最大10件分入っている。

<ul>
  {% for post in site.posts limit:5 %}
  <li><a href="{{ post.url }}">{{ post.title }}</a></li>
  {% endfor %}
</ul>

のように書くと、最新のブログ記事へのリンクを5件、リストに出力する。ポイントはfor文のlimit:5site.postsには全記事分の情報が入っているので、limit:5のようにすると5件に制限できる。

 related_postsも同じような使い方ができる。しかし、ディフォルトではrelated_postsには単に最新記事が10件分入っているだけである。ビルド時に--lsiオプションを付けると精度が上がるらしいが、どういうアルゴリズムになっているのかはよく解らない。さらにこのウェブサイトはGitHub Pages上でのビルドとホストしているが、その場合は--lsiオプションは使えない(ローカルでビルドして、その生成物をアップロードする方法ならば可)。
 ディフォルトでも、せめて同じカテゴリィや同じタグを付けた記事が入っていれば使いようがあるのだが……。