1

我正在将一堆 Genshi 模板转换为 Mako。

我经常在 Genshi 中使用它:

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

这在 Genshi 中所做的就是去掉类标签,当挑战为真时只留下裸词公司。

在 Mako 中执行此操作的最佳方法是什么?

我想出了

   % 如果不是挑战:
       <span class="特殊">
   % 万一   
   公司
   % 如果不是挑战:
       </span>
   % 万一

但是两个控制结构似乎是一对多的。

或这个

% 如果不是挑战:
  <span class="special">公司</span>
% 别的:
  公司
% 万一

这只是一种控制结构,但我将公司一词重复了两次。这在这里还不错,但是当我在跨度中拥有比“公司”一词大得多的东西时,它会很难看。

Mako 必须有一个优雅的 py:strip 等价物,不是吗?

4

2 回答 2

1

Mako Def可能会对您有所帮助。它允许在整个模板中多次定义“功能”之王并应用于内容。

使用 Def 最有用的方法可能是嵌入内容的 Def,它允许类似的代码

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

然后处理 Def 中定义的内容。

于 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 回答