Jekyll突出显示标签:防止逃逸

时间:2017-05-14 07:21:30

标签: jekyll highlighting

{% highlight %}
I want {% raw %}<span class="handle">{% endraw %}this span{% raw %}</span>{% endraw %} to be rendered as HTML.
{% endhighlight %}

是否可以阻止Jekyll的highlight标记处理输入的某些部分?

在上面的例子中,我希望Jekyll能够像这样生成HTML:

<pre>
  <code>I want <span class="handle">this span</span> to be rendered in HTML</code>
</pre>

,而不是:

<pre>
  <code>I want &lt;span class="handle" ...</code>
</pre>

2 个答案:

答案 0 :(得分:0)

突出显示标记有两个参数。第一个参数是您需要突出显示的语言(我假设它是html),第二个参数称为linenos,它是一个可选项,它将强制执行突出显示的代码以包含行号。所以你需要使用html来获取你的内容想。

{% highlight html %}
I want {% raw %}<span class="handle">{% endraw %}this span{% raw %}</span>{% endraw %} to be rendered as HTML.
{% endhighlight %}

换句话说,您无法使用{% highlight %}。如果它不是太冗长,请回到HTML上。

HTML的详细程度可以通过Jekyll的{% include %}来解决。

Jekyll强大而灵活。

使用{% include %}包含片段可以简化表达式。

包括:

{% assign linenos = "1 2 3" | split: " " %}
{% include linenos.html numbers=linenos %}
{% highlight text %}
Once upon a time, there was a unicorn.

The unicorn looked around.
{% endhighlight %}

附带的代码段:

<pre class="linenos"><code>{% for number in include.numbers %}{{ number }}
{% endfor %}</code></pre>

随附的CSS只是:pre.linenos { float: left; }

结果是能够以您喜欢的方式添加行号(通过{% include %}。 上面的“独角兽”示例见here

您想要的更复杂的示例是您可以在其中添加<span>元素的位置。你需要抛弃{% highlight %}并自己去<pre><code></code></pre>,抱歉。 Jekyll的{% highlight %}会逃避收到的所有内容,也不例外。该示例为here

插件也可以工作

但如果您直接发布(自己没有jekyll build步骤)到GitHub页面,则不会。

如果您包含自己的脚本来执行jekyll build(就像在上述项目中所做的那样),请随意编写自己的插件!

答案 1 :(得分:0)

@ {Abdul Hadi}

请你把答案添加到你的答案中吗?您是第一个正确回答我的人,我想将您的答案标记为正确。

我的回答......

简短回答,您无法使用{% highlight %}。如果它不太冗长,请回到HTML上。

HTML的详细程度可以通过Jekyll的{% include %}来解决。

Jekyll强大而灵活。

使用{% include %}包含片段可以简化表达式。

包括:

{% assign linenos = "1 2 3" | split: " " %}
{% include linenos.html numbers=linenos %}
{% highlight text %}
Once upon a time, there was a unicorn.

The unicorn looked around.
{% endhighlight %}

附带的代码段:

<pre class="linenos"><code>{% for number in include.numbers %}{{ number }}
{% endfor %}</code></pre>

随附的CSS只是:pre.linenos { float: left; }

结果是能够以您喜欢的方式添加行号(通过{% include %}。 以上&#34; 独角兽&#34;示例见here

您想要的更复杂的示例是您可以在其中添加<span>元素的位置。你需要抛弃{% highlight %}并自己去<pre><code></code></pre>,抱歉。 Jekyll的{% highlight %}会逃避收到的所有内容,也不例外。该示例为here

插件也可以工作

但如果你直接发布(自己没有jekyll build步骤)到GitHub页面,那就不行了。

如果您包含自己的脚本来执行jekyll build(就像在上述项目中所做的那样),请随意编写自己的插件!