テンプレート内で変数に代入したい
お題:A.html、B.html の2つで、hoge.html というテンプレートを使い回している(=includeしている)として、ページタイトルをAとBで異なる物にしたい。タイトルは固定的な文字列なので、ハンドラーから渡すんじゃなく、テンプレート内で定数のように定義しておきたい。
答え:withテンプレートタグを使う。
A.html
<body> {% with "AAAA" as title %} {% include "hoge.html" %} {% endwith %} </body>
B.html
<body> {% with "BBBB" as title %} {% include "hoge.html" %} {% endwith %} </body>
hoge.html
<div>このページは {{title}} です!</div>
ってやっておくと、表示したときに以下のようになる。
A.html
このページは AAAA です!
B.html
このページは BBBB です!