【问题标题】:How to show code with octopress如何使用 octopress 显示代码
【发布时间】:2014-03-06 16:44:19
【问题描述】:

我想在使用 Octopress 构建的网站上显示以下文本:

<ul>
{% for item in site.categories %}
<li><a href="/categories/{{ item[0] }}/">{{ item[0] | capitalize }}</a> [ {{ item[1].size }} ]</li>
{% endfor %}
</ul>

我在文本之前和之后分别插入了 {% raw %} 和 {% endraw ½}。

{% raw %}
<ul>
{% for item in site.categories %}
<li><a href="/categories/{{ item[0] }}/">{{ item[0] | capitalize }}</a> [ {{ item[1].size }} ]</li>
{% endfor %}
</ul>
{% endraw ½}

结果是:

{% for item in site.categories %}
  • 列表项 {{ 项目[0] |大写 }} [ {{ item[1].size }} ]
    {% endfor %}

预料之中:

<ul>
{% for item in site.categories %}
<li><a href="/categories/{{ item[0] }}/">{{ item[0] | capitalize }}</a> [ {{ item[1].size }} ]</li>
{% endfor %}
</ul>

【问题讨论】:

  • 你能改写这个吗?目前尚不清楚您希望看到什么,或者您正在尝试做什么。 raw 标签中有(我假设)错误。
  • 我改写了我的文字。希望越来越好

标签: jekyll liquid octopress


【解决方案1】:

您可以采用两种方法,我假设您尝试将此内容放入降价文件并在 Jekyll 中使用 kramdown 降价处理器。

使用“原始”标签和代码块

{% raw %}

~~~
<ul>
{% for item in site.categories %}
<li><a href="/categories/{{ item[0] }}/">{{ item[0] | capitalize }}</a> [ {{ item[1].size }} ]</li>
{% endfor %}
</ul>
~~~

{% endraw %}

需要使用 raw 标签来防止液体标签被处理,并且防护代码块防止 HTML 直接通过 markdown 处理器。它将显示为如上的代码块。

使用“原始”和“突出显示”

如果您希望 HTML 突出显示,您可以使用这种方法。不幸的是,Pygments 不会突出显示液体标签。

{% highlight html %}
{% raw %}
<ul>
{% for item in site.categories %}
<li><a href="/categories/{{ item[0] }}/">{{ item[0] | capitalize }}</a> [ {{ item[1].size }} ]</li>
{% endfor %}
</ul>
{% endraw %}
{% endhighlight %}

【讨论】:

  • 我看不出你的第一个提议和我的方法有什么区别。对我来说,这行不通。是的,这是一个降价文件的内容,我正在使用 Jekyll 和 Octopress。
  • @Bertaud 您使用的是什么降价处理器(它会有所作为)?您是否尝试按原样复制粘贴我的示例?您的方法和我的第一种方法之间的区别在于,我的方法是使用围栏代码块来防止 HTML 也被呈现。 Kramdown 使用三个“~”字符来表示这一点,一些降价处理器使用三个反引号。
猜你喜欢
  • 2012-12-21
  • 1970-01-01
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
相关资源
最近更新 更多