【问题标题】:How do I use a HTML filter in macro arguments in Template Toolkit?如何在 Template Toolkit 的宏参数中使用 HTML 过滤器?
【发布时间】:2011-06-18 12:04:33
【问题描述】:

我有这样的事情:[% query | html %]

现在我想把它用作

[% MACRO l(text, args) BLOCK; c.localize(text, args); END; %] 
[% l('text:<b>[_1]</b> no:[_2]', [query | html,2]) %]

如果您尝试该示例,它将无法正常工作,因为| 无法在此处使用。 Template Toolkit 不接受这点。我想 HTML 转义 query。我该怎么做?

&lt;b&gt; 移出引号不是解决方案,因为翻译的顺序可能与上述不同。

【问题讨论】:

  • 不太清楚你在问什么。您能否发布一个完整(但简短)的示例,我们可以通过 tpage 运行。

标签: perl catalyst template-toolkit


【解决方案1】:

你可以[% USE HTML %]escape一个具体的参数,例如:

[% USE HTML %]
[%# your code above %]
[% l('text:<b>[_1]</b> no:[_2]',  HTML.escape(query), 2) %]

【讨论】:

  • 不可能,因为现实比这更复杂。我将更新示例,因为参数的顺序可能不会保持不变。
  • 更新了你的问题
猜你喜欢
  • 2017-06-02
  • 2011-10-25
  • 2012-03-12
  • 2016-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多