カテゴリに対応した
2013-08-29 / CMS
jekyll面白い。手間かかるけど、昔コツコツサイト作ってた頃と同じ感覚。
さて、jekyllにもカテゴリはあるので、対応してみた。
##トップの最近の記事一覧
特に難しいこともなく、使ってるカテゴリは、テンプレート内では page.categories から参照できる。記事に対して複数カテゴリを設定するつもりはないので、page.categories .first してる。
##カテゴリ別ページ
カテゴリ名を取得するのは簡単なんだけど、カテゴリ別の一覧ページを作るのは一工夫。
記事にカテゴリを使うと、http://kawaken.github.io/カテゴリ/〜 みたいなサブディレクトリを作ってくれるので、あらかじめカテゴリ名と同じディレクトリを作って、index.htmlを作っとくと良い。
index.htmlの内容は、RSSに対応した時と同じ理屈で、YAML front matter に対応したテンプレートになっていれば良い。
##ハマったとこ
ちょっと注意しないといけないのは、for でsite.categoriesを参照するとき。↓のようなループを書くんだけど、要素用の変数名をcategory
とかにしすると上手く値が取れない。
{% raw %}{% for cate in site.categories %} <li><a href="/{{cate.first}}/">{{ cate.first }}</a></li> {% endfor %}{% endraw %}
予約されてるのか何なのかわからないけど、変数名を違うものにしたら上手くいった。
あと、この例だと、cateにはカテゴリ名とさらに記事一覧が入ってるっぽい。cate.first で期待した値が取れたので深追いしてないけど。