3

ピラミッド+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" />が、これは役に立ちませんでした。

マクロ サマリー ファイルに集められたマクロを使用するにはどうすればよいですか?

4

1 に答える 1