在 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: "<", "&lt;" | replace: ">", "&gt;" </code></pre>

【讨论】:

以上是关于在 Liquid 模板中输出文字花括号的主要内容,如果未能解决你的问题,请参考以下文章

C程序花括号嵌套层次统计(新)

划词标注2-使用花括号概括信息

innerHtml +花括号的角度5问题

Scala方法调用中的花括号[重复]

刀片引擎:打印三重花括号

如何在环境变量中捕获bash命令组(花括号)的输出