wiki:CustomizeTemplates
Warning: Can't synchronize with repository "(default)" (Unsupported version control system "svn": dlopen(/opt/local/lib/svn-python2.6/libsvn/_fs.so, 2): Library not loaded: /opt/local/lib/libssl.0.9.8.dylib Referenced from: /opt/local/lib/svn-python2.6/libsvn/_fs.so Reason: image not found). Look in the Trac log for more information.

テンプレートのカスタマイズ

RanaPrunusが生成するブログページのHTMLテンプレートをカスタマイズする方法を紹介します。

RanaPrunusではテンプレートエンジンに ERBを利用しています。

テンプレート対応

それぞれのページは以下のテンプレートと対応しています。

インデックスページindex.rhtml
エントリページentry.rhtml
Feedrdf.rhtml
月別アーカイブmonth.rhtml
カテゴリアーカイブcategory.rhtml

これらのテンプレートはHTML生成時に以下の優先度で使用されるファイルを検索します

  1. ”#{そのブログのHTML生成先}/WEB-INF/templates" フォルダ内にあるファイル
  2. "#{RanaPrunusインストール先}/aphrael/templates"フォルダ内にあるファイル

ブログ特有のテンプレートを利用したい場合は、”#{そのブログのHTML生成先}/WEB-INF/templates" 下にテンプレートファイルを保存してください。

テンプレートで利用できるメソッドおよび変数

全般

インタフェース

  • Aphrael::Page クラスを継承しています。
  • ERB::Util モジュールをインクルードしています。
  • ActionController::UrlWriter? モジュールをインクルードしています。

メソッド

  • parse(filename)
    • 引数に与えられたファイルを再度erbテンプレートとして解釈します。
  • include(filename)
    • 引数に与えられたファイルを展開します。
  • title
    • そのページのデフォルトのタイトルを返します。
  • description
    • そのページのデフォルトのdescriptionを返します。
  • url
    • そのページのurlを返します。
  • authors
    • そのページの著者の名前の配列を返します。

変数

  • @blog
    • そのページが含まれるBlogオブジェクトです。