Rythm テンプレート エンジンをご覧ください: http://rythmengine.com
jinja の「ブロック」機能は、Rythm では「セクション」と呼ばれます。したがって、レイアウト テンプレート (親テンプレート) が次のように呼ばれるとしmain.html
ます。
<h1>@get("title", "default main page")</h1>
<div id="left-panel">@render("leftPanel")<div>
<div id="right-panel">@render("rightPanel")</div>
<div id="main-content">@render()</div>
<div id="footer">
@render("footer"){
@**
* the content here is supplied if the child template failed
* to provide it's own footer implementation
*@
<div class="footer">copyright 2012 ...</div>
}
</div>
そして、ここにあなたのターゲットテンプレートがあります:
@extends(main)
@set(title: "My Cool Page")
@section("leftPanel") {
<ul class="menu">
...
</ul>
}
@section("rightPanel") {
<div class="news">
...
</div>
}
@*** note no "footer" section supplied so the default content will be used **@
@*** the rest is for the main content **@
...
この機能の実際のデモは、http://rythmengine.com/demo/testdefaultlayoutcontentにあります。
包括的なドキュメントはhttp://www.playframework.org/modules/rythmにあります。Play!Framework を対象としていますが、ほとんどのコンテンツは Play!Framework を使用しない純粋なリズム エンジンにも適用されます。
デモ自体が GAE で実行されているため、GAE について心配する必要はありません。