005. テンプレートファイルの編集
前回、静的ファイルを配置する方法について説明しましたが、今回はいよいよテンプレートファイルの編集を行います。これでひと通りRijiの基本機能をマスターして、自分のBlogサイトを構築できるようになるでしょう。
テンプレートディレクトリ
テンプレートはshare/tmplに配置します。初期状態では以下のようになっています。
% tree share/tmpl
share/tmpl
├── base.tx
├── default.tx
├── entry.tx
├── index.tx
└── tag.tx
テンプレートにはPerlの高速テンプレートエンジンであるXslateを採用しており、拡張子は.txとなっています。Xslateにはいくつかシンタックスがあるのですが、Rijiでは標準のシンタックスである"Kolon"を利用しています。
Kolonのシンタックスについて
詳しくは公式ページから辿れるドキュメント等に説明を譲りますが、KolonはPerl6ライクな文法を提供するテンプレートエンジンになっています。各変数の頭には$
がついています。一度代入した変数には再代入不可能であることに注意して下さい。以下のようにすることで変数の中見を描画することができます。
<: $bar :>
Rijiではテンプレート描画時にテンプレートに自動的にいくつかの変数が渡されます。
初期テンプレートの役割について
base.tx
ベースのテンプレートです。Xslateにはテンプレート継承という概念があり、base.txはすべての継承元のテンプレートとして使うことが想定されています。もちろんそれに強制的に従う必要はありません。
すべてのページには変数$blog
が渡されますが、このページでもその変数を使うことができます。
default.tx
標準のテンプレートです。article直下のmdファイルに対応するコンテンツを描画するのに利用されます。riji setup
でarticle/archives.md というファイルが作られて、archives.html というアドレスでアクセス可能になっているかと思いますが、それはこのテンプレートを使って描画されています。
$blog
の他に$article
という変数が渡されます。
entry.tx
ブログエントリー描画用のテンプレートです。中見を見るとわかると思いますが、標準で前後のエントリーへのリンクなどが記述されていることが分かるでしょう。
$blog
の他に$entry
という変数が渡されます。
index.tx
ブログの全体トップページ用のテンプレートです。
$blog
の他に$article
という変数が渡されます。
tag.tx
タグページ用のテンプレートです。タグとは何でしょうか?
実はRijiではBlogエントリにタグを付けることができるのですが、今回はそれには触れません。
$blog
の他に$tag
という変数が渡されます。
変数について
自動的に渡されるそれぞれの変数には様々なプロパティやメソッドがぶら下がっています。どんなプロパティやメソッドがあるかはここでは細かくは触れませんが、初期テンプレートの中見を見て参考にしてみて下さい。余力があればRiji本体のソースコードを読んでみて下さい。
mdファイル内でのXslate記述について
MarkdownはHTMLを直接記載可能なマークアップ書式であり、かつ、mdファイルの中でXslateの記法も使えることは前回説明したとおりなので、結構複雑なテンプレートをmdファイルの上に書くことも可能です。あまりオススメはしません。
今回はここまでです。
次回の内容
テンプレートの編集まで終わり、ひと通りサイトを編集できるようになったと思います。次回はブログ記事にメタ情報を付加する方法について説明します。今回触れられなかったタグについても取り上げます。