如何在jekyll中的markdown文件中包含HTML文件?

时间:2012-11-25 09:13:28

标签: markdown jekyll

我有一个像这样的文件结构的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 个答案:

答案 0 :(得分:12)

只要有YAML标题,您就可以在任何降价文件中使用液体标签。例如,查看index.md中提供的jekyllbootstrap template for Jekyll sites

如果你链接到你的实际index.markdown或你的存储库本身(例如,如果它在github上),我们可能会更好地了解出了什么问题。您的示例应该有效,但您可能需要使用HTML列表元素<li>而不是降价标记*

答案 1 :(得分:4)

问题是解析器将HTML视为代码块。最好的方法是关闭像asked in this question

这样的代码块

要解决使用替换标记:

{% capture includeGuts %}
{% include post-entry.html %} 
{% endcapture %}
{{ includeGuts | replace: '    ', ''}}

答案 2 :(得分: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 %}

答案 3 :(得分:-8)

你做不到。 Markdown文件只是具有样式的文本文件。如果您想使用Liquid标签,则必须在_layouts

中执行此操作

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