Markdown 转义Jekyll中标记代码块内的双花括号
我正在使用Jekyll创建一个文档站点,在其中我试图记录一些包含类似把手的语法的代码。例如Markdown 转义Jekyll中标记代码块内的双花括号,markdown,jekyll,liquid,kramdown,Markdown,Jekyll,Liquid,Kramdown,我正在使用Jekyll创建一个文档站点,在其中我试图记录一些包含类似把手的语法的代码。例如{{foo}。问题是,杰基尔使用液体标签,无论我做什么,我的双卷发都会被液体处理器撕掉 顺便说一下,我用kramdown作为降价处理器 以下是我尝试过的一些东西: {% highlight html linenos %} Hello, my name is {{name}}. {% endhighlight %} 这个函数完全删除了{name}}部分,因为它认为它是对一个液体变量的引用 我也试过: {
{{foo}
。问题是,杰基尔使用液体标签,无论我做什么,我的双卷发都会被液体处理器撕掉
顺便说一下,我用kramdown作为降价处理器
以下是我尝试过的一些东西:
{% highlight html linenos %}
Hello, my name is {{name}}.
{% endhighlight %}
这个函数完全删除了{name}}部分,因为它认为它是对一个液体变量的引用
我也试过:
{% highlight html linenos %}
Hello, my name is \{\{name\}\}.
{% endhighlight %}
{% highlight html linenos %}
Hello, my name is <span>{</span>{name}}.
{% endhighlight %}
在本例中,我试图避开大括号,但结果是斜杠被呈现到页面中
我甚至试过:
{% highlight html linenos %}
Hello, my name is \{\{name\}\}.
{% endhighlight %}
{% highlight html linenos %}
Hello, my name is <span>{</span>{name}}.
{% endhighlight %}
{%highlight html linenos%}
你好,我的名字是{{name}。
{%endhighlight%}
诚然,这一次相当愚蠢。在本例中,因为我已经将语法指定为html(它需要是html),所以span标记被呈现到页面中
那么我到底该如何解决这个问题呢?您正在寻找
{%raw%}
标记
{% raw %}
Hello, my name is {{name}}.
{% endraw %}
您可以使用
{%raw%}
确保内容不被Jekyll修改:
{% raw %}
This is inserted literally: {{foo}}
{% endraw %}
但是,请注意,这不是代码块。您将需要额外的代码格式,以使内容呈现为代码:
{% raw %}
I'm a code block, because I'm indented by 4 spaces
{% endraw %}
对于jekyll,代码是:
{% highlight html%}
{% raw %}
<h2> {{ user.name.first | uppercase }}</h2>
<p> {{ user.email }}</p>
{% endraw %}
{% endhighlight %}
{%highlight html%}
{%raw%}
{{user.name.first}大写}
{{user.email}
{%endraw%}
{%endhighlight%}
这在杰基尔中有效:
{%raw%}{{thing}}{%endraw%}
对于将来的参考:使用普通的
{%raw%}
和{%endraw%}
只是第二个最好的解决方案,因为如果您在normal github.com上查找标记,就会显示这些解决方案
最好的方法是将{%raw%}
和{%endraw%}
放在HTML注释中:
<!-- {% raw %} -->
something with curlky brackets like { this } and { that }
<!-- {% endraw %} -->
有像{this}和{that}这样的大括号的东西
由于HTML注释,Github将其视为注释。在Github页面中,原始标记将阻止对标记之间的花括号进行解析。感谢您的添加。最后我做了一些比这更难看的事情,比如
{%raw%}{{foo}{%endraw%}
,所以我来看看你在这里做了什么。这是一个更灵活的解决方案,因为它允许保留代码块及其语法。如果你想看到的代码是{%raw%}{{…}{%endraw%}
在一篇讨论这个话题的博文中,你可能会发现?@starfry:你应该问的很有趣。。。值得注意的是:上述方法同样适用于胭脂荧光笔。但是,如果使用fenced语法突出显示代码(三个前导的反勾号,如``html…),则raw不起作用。仅供参考,我使用了三个反勾号来证明Jekyll中的代码块可以起作用。它不打算在回复中创建代码块:)