p_chinのおっぱいブログ

UnityとPerlなど

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の逆の振る舞いをする

まとめ

共通部分の利用が出来るから設計力が問われそう...