ピラミッド+ZPTエンジン(Chameleon)でマクロを使いたい。
ドキュメントには、「1 つのページ テンプレートで複数のマクロに対応できる」と記載されています。 http://chameleon.readthedocs.org/en/latest/reference.html#macros-metal
したがって、ファイルを定義しました
macros.pt
:
<div metal:define-macro="step-0">
<p>This is step 0</p>
</div>
<div metal:define-macro="step-1">
<p>This is step 1</p>
</div>
main_template.pt
スロットを定義するすべての html 要素を含むグローバル テンプレートcontent
。
スロットを埋めるためにprogress.pt
使用する私のビューのテンプレート:main_template.pt
<html metal:use-macro="load: main_template.pt">
<div metal:fill-slot="content">
...
<div metal:use-macro="step-0"></div>
...
</div>
</html>
use-macro="main_template.pt"
これまでのところ、Zope のように Chameleon がテンプレートを自動的にロードしないため、ただ言うことはできないことを痛感しました。load:
したがって、前にスニペットを追加する必要がありました。
に来ていuse-macro="step-0"
ます。これにより、 NameError が発生しstep-0
ます。macros.pt
のようなものをプリロードしようとしました<tal:block tal:define="compile load: macros.pt" />
が、これは役に立ちませんでした。
マクロ サマリー ファイルに集められたマクロを使用するにはどうすればよいですか?