Text::Xslate::Syntax::Kolonのテンプレートについて
便利そうな仕組みがあって先輩に教えてもらったのでメモ
PHPのincludeみたいの使えたり、他にも色々あった
コードみてみる
kawaii.tx
<!--{テンプレートのroot}/neko/kawaii.tx--> : cascaed common::oppai {title => "タイトルに値を渡して指定出来る"} <!--「<p>私の</p><p>名前は</p>,<p>ぴーちんです</p>」の順に継承元(oppai.tx)の「: block body->{}」に書き込まれる--> : around body->{<p>名前は</p> } : after body->{<p>ぴーちんです</p>}; : before body->{<p>私の</p>};
継承元の
<!--{テンプレートのroot}/common/oppai.tx--> <html> <head> <title><: $title || "何も指定が無いとこちらがtitleになる" :></title> </head> <body> : block body->{}; </body> </html>
説明
読み込み先に引数指定してあげれたり出来る
cascade(継承)
- ページの共通部分などを読み込んだりする
include(挿入)
- PHPのincludeと同じで、指定したファイル内の記述をそのままペーストする
{target} body->{}
3種類あるが、全て継承元の「: block body」内を書き換えたりする命令
around body
....ブロック内の記述で書きかえるbefore body
....書き換えたbodyの一番上の行にブロック内の記述を追加するafter body
....before body
の逆の振る舞いをする
まとめ
共通部分の利用が出来るから設計力が問われそう...