サンプルを書いて github に置いた。ので、そのことを忘れないようにメモ。
できることできないこと
- 複数のラッパーを入れ子にできる。 WRAPPER ディレクティブを使う場合は・・・書き方わすれた。 auto wrapper を使う場合は Template->new({WRAPPER => ['outer.tt', 'inner.tt']}); とする。
- ラッパーじゃない普通のテンプレート ($tt->process で指定するやつ) からは META と普通の変数で値をラッパーのテンプレートに渡せる
- META は上書きできない。 $tt->process('index.tt') としたら、 index.tt 内に書いた META の中身は参照できるが inner.tt 内に META を書いても outer.tt から参照できない (←本当か??でも自分で試したときはできなかった。。)
- 普通の変数は上書きできる。 $tt->process('index.tt') として index.tt 内で [% SET message = 'hello' %] しておいてから inner.tt で [% SET message = 'goodbye' %] とすると、 outer.tt 内で参照したとき goodbye になる (←これも書いててあまり自信ない、根拠が・・・けど試したらそうなった)
参考にしたページ
- Template::Manual::Config
- Template::Manual::Directives
- Template::Manual::Directives
- Catalyst::Helper::View::TTSite と TT の AutoWrapper : おまえのログ
- Redirecting…
- http://wiki.paulownia.jp/catalyst/tt
- Template-ToolkitのWRAPPERでレイアウト制御 - Lism.in * blog - nekoya (id:studio-m)
- template toolkitでWRAPPERするファイルをデフォルトで定義したり条件によって別のファイルを指定したりする - だるろぐ跡地
- Template-ToolkitのWRAPPERを一時的に解除する - ヒルズで働く@robarioの技ログ