【问题标题】:How to display acute accent characters in Dropdown created in Template Tool kit如何在模板工具包中创建的下拉菜单中显示重音字符
【发布时间】:2014-05-01 10:11:24
【问题描述】:

我对为什么在模板工具包的下拉选项下没有正确显示重音符号感到困惑。

[% glossary.$language.all_terms %] 

在 UI 中显示为“Todos los Términos”。但是当我在下拉菜单中使用它时,它显示的字符不正确。我已附上截图。

为此,我编写了这样的模板。

[% IF terms.size > 1 %]
  <select onchange="this.form.submit();">
  [%-
     IF terms.size > 1;
        terms.unshift( { name => glossary.$language.all_terms, term_id => '0' } );
        terms.unshift( { name => glossary.$language.all_current_terms, term_id => '' } );
     END;

 INCLUDE html/options.tmpl
 options   = terms,
 valuekey  = 'term_id',
 choicekey = 'name',
 selected  = form.term_id
  -%]
</select>

html/options.tmpl 是一个模板,它将在同一个下拉列表中添加额外的动态选项。术语数据结构是从 PERL 模块发送的。 我做错了什么?

【问题讨论】:

  • HTML 中实际输出的是什么?我的猜测是某些东西正在对 HTML 进行自动编码,因此 &amp;#233; 正在转换为 &amp;amp;233;
  • @DaveCross 我添加了新的屏幕截图。当我打印 [%词汇表.$language.all_terms %] 时,它工作正常。但是当我在下拉代码部分中输入相同的内容时,&eacute 没有正确显示。

标签: perl template-toolkit


【解决方案1】:

我同意 Dave 的观点,Template Toolkit 网站中流行的语法是使用 html 实体的单词形式。也许在 html/options.tmpl 中用&amp;eacute; 替换&amp;#233;

除此之外,模板工具包还描述了过滤器的使用。出于某种原因,选项项可能会被过滤,也可能不会。也许这可以帮助你https://metacpan.org/pod/distribution/Template-Toolkit/lib/Template/Manual/Filters.pod#html_entity

【讨论】:

  • 感谢它的工作。我在 html/options.tmpl 模板文件中有一个escape_html。删除它,恢复精确的重音字符
猜你喜欢
  • 2013-04-18
  • 1970-01-01
  • 2017-08-30
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 2019-06-17
  • 1970-01-01
相关资源
最近更新 更多