0

我是 Template Toolkit 的新手,正在尝试更新一些现有的模板,因此我感谢收到的任何帮助。

我已经设置了一个条件语句来检查模块的名称,然后将该名称输出为一个 dirified HTML ID(例如“这是一个标题”->“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 注释并 dirifying 剩余的文本。使用 [% 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">(或任何 dirified 标题最终是什么)。

4

1 回答 1

0

这可能会满足您的需要:

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

如果没有 HTML 注释问题的具体示例,就很难说。

于 2013-04-02T04:48:17.970 回答