在 Liquid 模板中输出文字花括号
Posted
技术标签:
【中文标题】在 Liquid 模板中输出文字花括号【英文标题】:Outputting Literal curly braces in Liquid templates 【发布时间】:2011-03-20 20:20:01 【问题描述】:我正在尝试从液体模板中输出以下内容:
example
显然,Liquid 将其视为一个名为 example
的变量并尝试进行替换。我正在尝试找出如何输出实际的大括号。
到目前为止,我找到了一种可行的方法,但它非常难看:
'example'|prepend:''
是的,告诉过你这很恶心。
以下是我尝试过的其他方法:
example # outputs ''
example # outputs ''
\\ example \\ # outputs '\\ example \\'
这里有什么建议吗?
【问题讨论】:
除了下面投票最多的“原始/抽签”答案外,还可以查看提供注释类型解决方案的“How to escape liquid template tags?”。 这能回答你的问题吗? How to escape liquid template tags? 【参考方案1】:对于 和
分别使用数字 html 实体
{
和 }
怎么样 - 大概这是作为 HTML 输出?
编辑:请原谅,我对 liquid 不太熟悉(所以这可能是非常错误的),但是您可以将您的 example
特殊值分配给一个变量并输出?可能是这样的:
% assign special = ' example ' %
special
【讨论】:
不幸的是,输出最终会在 @Fortes 我已经更新了我的答案:您可以将带大括号的字符串分配给变量并输出吗? 呃,这是在 Liquid 本身中显示 Liquid 语法的唯一方法吗?我正在尝试在使用 Liquid 生成的页面上显示整个模板,但现在它搞砸了。有没有像 noparsefromhere...noparsetohere 这样的东西? @cringe 我同意 - 应该有办法。但恐怕我不是液体专家!例如,您能否将整个 子模板(您想按原样显示)加载到模板变量中(不对其进行解析)并在主模板中显示您的变量?还是仍然会被解析? @w3d 嗯,这听起来像是一种方法......我还不知道我是否可以加载整个模板。但我认为只提供源格式的实际模板并直接链接到它对我来说更容易。【参考方案2】:你也可以使用raw:
% raw %
...lots of liquid code goes here and it doesn't get interpreted...
% endraw %
【讨论】:
这应该是公认的答案。以下内容在脚本模板中非常适合我:moneyFormat: % raw %'$amount_no_decimals'% endraw %
这就是答案!【参考方案3】:
这是唯一对我有用的东西。摘自here:
" this "
我需要这个,因为我想从 mustache 模板中引用 site
全局变量。
【讨论】:
【参考方案4】:您可以转义 HTML,例如在 var
中您可以使用 \\var\\
,这样 luquid 就不会处理它。
【讨论】:
\\ 在 Liquid 中不起作用。它将同时输出斜杠和大括号。【参考方案5】:我希望在格式化受保护的代码块时同时使用大括号和尖括号,所以我最终得到了以下模式:
% capture code %% raw %line 1
line 2
line 3
% endraw %% endcapture %
<pre><code> code | replace: "<", "<" | replace: ">", ">" </code></pre>
【讨论】:
以上是关于在 Liquid 模板中输出文字花括号的主要内容,如果未能解决你的问题,请参考以下文章