Jekyll中的Jekyll代码

9

我正在为Jekyll创建一个俯瞰教程,该教程将托管在Github页面上(运行于Jekyll的博客)。因此,我想在其中添加一些代码。如果我加入以下内容:

{% for post in site.posts %}
{% if post.categories contains '<categoryname>' %}
    <h2>
      <a href="{{ post.url }}">{{ post.title }}</a>
    </h2>
{% endif %}
{% endfor %}

在tabspaces后的所有行中,它不会呈现为代码,而是执行。我如何阻止它执行并将其呈现为代码?


请查看 http://jekyllrb.com/docs/templates/ 和 https://dev59.com/NWw15IYBdhLWcg3wMpAY 上的 Code snippet highlighting 部分。 - Nick R
我也尝试过这个。我如何突出Jekyll?虽然在HTML上有效。 - Ranveer
3个回答

25
Jekyll使用的{%...%}语法是Liquid模板引擎的一部分。要转义这些标签,以便字面显示它们,您应该使用raw标签。您可能需要将此与代码块的markdown语法结合使用。使用Redcarpet时,您可以使用三个反引号语法。不管您把反引号放在raw标记内部还是相反,都没有关系:
{%raw%}
```
{% for post in site.posts %}
{% if post.categories contains '<categoryname>' %}
    <h2>
      <a href="{{ post.url }}">{{ post.title }}</a>
    </h2>
{% endif %}
{% endfor %}
```
{%endraw%}

2

请使用反引号将代码括起来:

(已在Redcarpet Markdown引擎中测试通过)

```
{% for post in site.posts %}
{% if post.categories contains '<categoryname>' %}
    <h2>
      <a href="{{ post.url }}">{{ post.title }}</a>
    </h2>
{% endif %}
{% endfor %}
```

Markdown引擎在您的_config.yml文件中指定。我在我的文件中有这一行:markdown:redcarpet。 - njk
1
啊!我正在使用 rdiscount。那么这是引擎 @zeis 的问题吗? - Ranveer
1
不同的引擎可能会使用不同的标记来表示代码块。 - njk
有没有想法这可能使用哪个标记。在大多数情况下,制表符都有效。 - Ranveer
我不使用rdiscount,不过你可以试试这个:{% highlight html %} 在这里放你的代码 {% endhighlight %} 这应该可以启用pygments,但我没有测试过。 - njk
谢谢!但是另一个答案解决了我的确切问题。无论如何加10分。 - Ranveer

0

在Jekyll中,至少有三种选项可用于格式化代码:

  1. highlight - Jekyll内置了高亮功能
{% highlight java %}
ValidationResult validationResult = NetLicensing.LicenseeService.validate(context, licenseeNumber);
{% endhighlight %}

示例:https://raw.githubusercontent.com/Labs64/netlicensing.io/gh-pages/_drafts/2010-09-16-post-template.md(请参见语法高亮部分)

  1. backtick - GitHub风格
```java
ValidationResult validationResult = NetLicensing.LicenseeService.validate(context, licenseeNumber);
```
  1. HTML pre/code - HTML也可以包含在markdown中

<pre><code> ValidationResult validationResult = NetLicensing.LicenseeService.validate(context, licenseeNumber); <code/></pre>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接