8

我有一个 jekyll 网站,其文件结构如下:

▾ _includes/
    post-entry.html
▾ _posts/
    2012-11-25-first-post.markdown
index.markdown

在我的 index.markdown 中,我想包含post-entry.html这样的内容:

{% for post in site.posts %}
* {% include post-entry.html %}
{% endfor %}

但这在博客中显示为 HTML 代码片段。如何防止 HTML 受到保护?

4

4 回答 4

12

您可以在任何降价文件中使用液体标签,只要它具有 YAML 标头即可。例如,查看Jekyll 站点的 jekyllbootstrap 模板中给出的index.md 。

如果您链接到您的实际 index.markdown 或您的存储库本身(例如,如果它在 github 上),我们可能会更好地了解哪里出了问题。您的示例应该可以工作,尽管您可能需要使用 HTML 列表元素<li>而不是 markdown *

于 2012-11-28T20:53:47.750 回答
5

问题是解析器将 HTML 视为代码块。最好的方法是像我在这个问题中提出的那样关闭代码块

要解决此问题,请使用替换标签:

{% capture includeGuts %}
{% include post-entry.html %} 
{% endcapture %}
{{ includeGuts | replace: '    ', ''}}
于 2014-09-10T01:10:12.050 回答
0

改为使用{{ post.content }}

这是我在我的网站上使用的代码作为示例:

{% for post in site.posts %}
    <a href="{{ post.url }}">
        <h2>{{ post.title }} &mdash; {{ post.date | date_to_string }}</h2>
    </a>
    {{ post.content }}
{% endfor %}
于 2013-08-31T20:37:15.997 回答
-8

你不能。Markdown 文件只是带有样式的文本文件。如果你想使用 Liquid 标签,你必须在你的 _layouts 中这样做

如果我猜对了,您希望在您的索引页面上有这个降价文件吗?因此,在 {{ content }} 标签之后的 default.html 布局中,您可以使用您想要使用的液体标签。无需将降价文件与代码混合。

于 2012-11-26T14:01:05.737 回答