1

たくさんの Genshi テンプレートを Mako に変換しています。

私はGenshiでこれをよく使う傾向があります:

<span class="special" py:strip="challenge">Company</span>

これが Genshi で行うことは、class タグを取り除き、challenge が true の場合に Company という単語だけを残すことです。

マコでこれを行う最良の方法は何ですか?

私は思いついた

   % チャレンジしない場合:
       <span class="特別">
   % endif   
   会社
   % チャレンジしない場合:
       </span>
   % endif

しかし、2 つの制御構造は 1 対多のように見えます。

またはこれ

% チャレンジしない場合:
  <span class="special">会社</span>
% そうしないと:
  会社
% endif

これは制御構造の 1 つにすぎませんが、会社という言葉を 2 回繰り返します。ここでは悪くありませんが、スパン内に Company という単語よりもはるかに大きなものがあると見苦しくなります。

Mako の py:strip に相当する洗練されたものがあるはずですよね?

4

2 に答える 2

1

Mako Defが役立つかもしれません。「機能」の王様を定義し、テンプレート全体でコンテンツに複数回適用することができます。

Def を使用する最も便利な方法は、コンテンツが埋め込まれた Def である可能性があります。これにより、次のようなコードが可能になります。

<%self:buildtable>
    I am the table body.
</%self:buildtable>

次に、定義で定義されているようにコンテンツを処理します。

于 2013-01-31T09:49:19.297 に答える
-1

Makoにはpy:stripに相当するものはありません。Makoは、html / xmlタグではなく、バイトを操作するためです。

Pyramidには、Makoの他に、Chameleon(GenshiのようなXML / HTMLテンプレートエンジン)が付属しています。カメレオンでは次のようになります。

<span class="special" tal:omit-tag="challenge">Company</span>
于 2013-01-31T10:51:35.723 に答える