如何转义液体模板标签?
Posted
技术标签:
【中文标题】如何转义液体模板标签?【英文标题】:How to escape liquid template tags? 【发布时间】:2011-03-26 11:12:16 【问题描述】:这听起来很简单,但是我在文档中的任何地方都找不到。如何在 liquid 模板中写入 % this %
而不被引擎处理?
【问题讨论】:
你可以随时comment out. 【参考方案1】:可以使用raw
标签禁用液体处理引擎:
% raw %
% this %
% endraw %
会显示
% this %
【讨论】:
我相信这曾经是plug-in。是否同时进入核心引擎? 看起来raw
标签是一年前在核心引擎中添加的。见github.com/Shopify/liquid/commits/master/lib/liquid/tags/raw.rb
但是,Github 不支持这种转义。
@LeiMing 好像是现在(可能是May 2013之后)
已确认,它适用于 GitHub Pages。 raw
标签是 introduced in Liquid 2.3.0,GitHub Pages 当前使用的是 version 2.5.5。【参考方案2】:
对于未来的搜索者,有一种无需插件即可逃脱的方法,请使用以下代码:
"% this " %
对于标签,要转义 this
使用:
" this "
还有一个 jekyll 插件可以让它变得更容易:https://gist.github.com/1020852
jekyll 的原始标签。防止液体在 % raw % 之间解析文本 和 % endraw %
Reference
【讨论】:
太好了,感谢您的参考。由于某种原因,我无法在液体文档中找到它。 你不再需要一个插件来使用% raw %
,对我来说它开箱即用,现在它在the docs中
在 jekyll 中是否可以使用 ``` 而不是 % 来转义代码?
前几个建议对我不起作用,但使用 raw
确实:% raw % this % endraw %
。
它成功了,谢谢...在这里看一个真实的例子g14n.info/2014/08/moving-from-blogger-to-github-pages/#comments【参考方案3】:
你可以在 Jekyll 帖子中使用 % raw % % endraw % 转义液体标签,即
% raw %
% for post in site.posts %
post.content
% endfor %
% endraw %
会产生
% for post in site.posts %
post.content
% endfor %
【讨论】:
【参考方案4】:顺便说一句:
如果你想在 Jekyll 中显示 "% this " %
,你可以这样编码:
" " " "% this" " "%
转义 " this "
使用:
" " " " this" " "
【讨论】:
哈哈哈哈哈哈哈。【参考方案5】:还有另一种选择:使用 html 特殊字符代码将花括号替换为其匹配代码:
将每个 替换为 将每个 替换为
有关此解决方案的更多详细信息,请参阅: http://www.tikalk.com/devops/curly_brances_workaround/
【讨论】:
【参考方案6】:我找到了一种用花括号显示任何文本的万能方法。您可以将纯文本分配给变量并显示它。
% assign var = " sth " %
var
【讨论】:
谢谢!用于转义双引号或单引号【参考方案7】:正如提到的here 一样,普通的% raw %
和% endraw %
只是第二好的解决方案,因为如果您在普通的github.com 上查找Markdown,就会显示这些解决方案。
最好的办法是把% raw %
和% endraw %
放在HTML cmets中:
<!-- % raw % -->
something with curlky brackets like this and that
<!-- % endraw % -->
由于 HTML cmets,Github 将其视为评论。在 Github 页面中,原始标签将阻止解析标签之间的大括号。
【讨论】:
我喜欢这种方法,因为某种原因,它不会与我的摘录混淆。【参考方案8】:我尝试了% raw %
% endraw %
,
和 "% this " %
。但它们都不起作用。
最后,我的工作答案是
"%" xxx something
.
我的代码:
"%" extends 'xadmin/base_site.html' %
"%" block nav_form %
<h3> "" title </h3>
"%" for i in context1 %
<p> "" i </p>
"%" endfor %
"%" endblock %
结果:
% extends 'xadmin/base_site.html' %
% block nav_form %
<h3> title </h3>
% for i in context1 %
<p> i </p>
% endfor %
% endblock %
【讨论】:
以上是关于如何转义液体模板标签?的主要内容,如果未能解决你的问题,请参考以下文章
Django(十五)模板详解:模板标签过滤器模板注释模板继承html转义
13.Django中几大常用模板标签讲解及实战使用 for循环;if判断;页面跳转;开启关闭自动转义;url携带参数传递;注释
13.Django中几大常用模板标签讲解及实战使用 for循环;if判断;页面跳转;开启关闭自动转义;url携带参数传递;注释