使用我从我在 stackoverflow 上提出和回答的另一个问题中学到的知识,这些似乎是您的 3 个选项。其中一个@Alan W. Smith在回答这个问题时也偶然发现。
选项 #1: -HTML::Template
有一个名为vanguard_compatibility_mode
...来自 perldocs的开关
vanguard_compatibility_mode - 如果设置为 1,模块将期望看到除了标准语法之外看起来像 %NAME% 的 s。还设置 die_on_bad_params => 0。如果您不在 Vanguard Media 尝试使用旧格式模板,请不要担心这个。默认为 0。
选项 #2 -HTML::Template
还支持在注释块中嵌入模板标签,以便您的代码与 HTML 兼容,如下所示:<!-- TMPL_NAME NAME=FNAME -->
再次来自 perldocs:
如果您对有效的 HTML 很狂热,并且希望您的模板符合有效的 HTML 语法,您可以选择以 HTML 注释的形式键入模板标签。这可能对希望在处理 HTML::Template 之前验证其模板的 HTML 语法或使用 DTD 精通编辑工具的 HTML 作者有用。
<!-- TMPL_VAR NAME=PARAM1 -->
This 2nd option didn't work originally for me until I set the die_on_bad_params => 0
for the constructor.
Option #3: Change the name of your Jekyll file from .md
(markdown) to .html
(vanilla html). This option get's around Jekyll's use of ReXML for it's XML parser. I'm not sure but if you switched from using ReXML to Nokogiri, I think that too would get around this issue, but I'm not entirely sure you can even reconfigure Jekyll in this manner.
Conclusion: Ultimately I think Option #2 is the best one to use, given it doesn't limit your ability to use .md
files within Jekyll.