我想使用Jekyll
生成一些模板页面,然后Perl
脚本会使用HTML::Template
Perl
模块。是否有可能让Jekyll单独留下HTML :: Template的标签并完全忽略它们?
例如:
<tr> <td>Name: </td> <td><TMPL_VAR NAME=NAME> </td> </tr>
<tr class="alt"> <td>Email: </td> <td><TMPL_VAR NAME=EMAIL></td> </tr>
我希望页面呈现为单独保留<TMPL_VAR NAME=...>
位的.html文件,稍后在后端Perl
脚本上将使用此文件作为模板文件并填写<TMPL_VAR NAME=...>
位的位置。
答案 0 :(得分:2)
您可以通过创建扩展名为.html的源页面来保留HTML(标准和Perl HTML :: Template集)。当你这样做时,jekyll(至少0.11.2)不会弄乱源HTML。您仍然可以使用YAML前端物质并放入液体标签。例如,这将作为扩展名为.html的源文件。
---
layout: default
title: This is the post title
categories: ["miscellaneous"]
---
{{ page.title }}
<table>
<tr> <td>Name: </td> <td><TMPL_VAR NAME=NAME> </td> </tr>
<tr class="alt"> <td>Email: </td> <td><TMPL_VAR NAME=EMAIL></td> </tr>
</table>
从那里,您可以完整地传递HTML :: Template标签进行二次处理。
答案 1 :(得分:1)
使用我从another question学到的东西,我问过&amp;在stackoverflow上回答,这些似乎是你的3个选项。其中一个@Alan W. Smith在回答这个问题时偶然发现了。
选项#1: - HTML::Template
有一个名为vanguard_compatibility_mode
的开关...来自perldocs
vanguard_compatibility_mode - 如果设置为1,模块将会看到s 除了标准语法之外,看起来像%NAME%。同时设置die_on_bad_params =&gt; 0。 如果您不在Vanguard Media尝试使用旧的格式模板,请不要担心 这个。默认为0。
选项#2 - HTML::Template
还支持在评论块中嵌入模板标记,以便您的代码符合HTML标准,如下所示:<!-- TMPL_NAME NAME=FNAME -->
再次来自perldocs:
如果您对有效的HTML感兴趣,并希望您的模板符合有效 HTML语法,您可以选择以HTML注释的形式键入模板标签。这个 可能对想要验证其模板的HTML语法的HTML作者有用 在HTML :: Template处理之前,或者使用DTD-savvy编辑工具的人。
<!-- TMPL_VAR NAME=PARAM1 -->
在我为构造函数设置die_on_bad_params => 0
之前,第二个选项最初对我不起作用。
选项#3:将Jekyll文件的名称从.md
(降价)更改为.html
(vanilla html)。这个选项围绕着Jekyll使用ReXML的XML解析器。我不确定,但是如果您从使用ReXML切换到Nokogiri,我认为这也会绕过这个问题,但我不完全确定您甚至可以重新配置Jekyll这种方式。
结论:最终我认为选项#2 是最好用的,因为它不会限制您在.md
文件中使用{{1}}文件的能力{3}}