Jekyll突出显示标签:防止逃逸 [英] Jekyll Highlight Tag: Prevent escaping

查看:9
本文介绍了Jekyll突出显示标签:防止逃逸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

{% 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>

推荐答案

突出显示带两个参数标记。第一个参数是您需要突出显示的语言(我假设它是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(就像上述项目中所做的那样),请随意编写您自己的插件!

这篇关于Jekyll突出显示标签:防止逃逸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆