通过条件语句传递HTML注释

时间:2013-04-01 23:16:41

标签: template-toolkit

我是模板工具包的新手,试图更新一些现有的模板,所以我感谢任何收到的帮助。

我设置了一个条件语句,用于检查模块的名称,然后将该名称输出为dirified HTML ID(例如“This is a Title” - >“this_is_a_title”)。

代码:<div [% IF Tag.module_name %]id="[% Tag.module_name | dirify %]"[% END %]>

但是,在某些情况下,输入的标题已包含在HTML注释中。这是我无法控制的,所以我想做的就是以某种方式解决这个问题。我想要:

  • 删除评论标记,留下评论文本本身,以便它仍可用于ID;或
  • 忽略使用HTML注释的标题,而不是完全插入ID属性

目前,带有HTML评论的标题的输出最终为<div id="">,这很难看。我已经尝试找到我需要的代码,并完成了多个搜索解决方案,但我似乎无法解决它。这是可能的还是我需要接受空ID?

更新:在dirify过滤器之前传递一个额外的HTML过滤器,最终用于删除HTML注释并将剩余的文本取消。使用[%ATTag.list_name | HTML | dirify%]帮助输出格式为<!--This is a Title-->的标题为this_is_a_title。我还能够将上面的原始代码示例简化为<div id="[% Tag.module_name | html | dirify %]">,而<div id="this_is_a_title">输出{{1}}(或者任何最终标题的结果)。

1 个答案:

答案 0 :(得分:0)

这可能会满足您的需求:

[%- SET dirified = Tag.module_name FILTER dirify;
    IF dirified; -%]
    <div id="[% dirified %]">
[%- ELSE -%]
    <div>
[%- END-%]

如果没有HTML评论问题的具体示例,很难说。