Jekyll:在Markdown文件中包含HTML部分内容

Fra*_*une 21 html markdown partial jekyll

有没有办法从Jekyll的Markdown文件中包含HTML部分?

例:

档案index.md:

---
layout: default
title: Home
---

This is a [Markdown](http://daringfireball.net/projects/markdown/) file.

{% include foobar.html %}
Run Code Online (Sandbox Code Playgroud)

档案_includes/foobar.html:

<ul>
    <li>Foo</li>
    <li>Bar</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎不适用于我的情况.

为了完整性,这是我的_config.yml文件的全部内容:

encoding: utf-8
markdown: kramdown
baseurl: 
Run Code Online (Sandbox Code Playgroud)

Joh*_*ter 22

html显示为纯文本的一个常见原因是html代码段缩进时至少有四个空格.

这导致jekyll将html解释为字面上显示的代码块.

(我知道这已经在评论中提到了,但我花了一段时间才发现并理解我遇到了完全相同的问题)

  • 在我看到你的回答之前,我正在疯狂地试图理解为什么 html 被呈现为好像在反引号内一样,谢谢!!!! (2认同)
  • 你怎么能逃避这种行为? (2认同)
  • @DickeySingh 您可以用 1 个制表符替换 2 个空格。看看这个:http://stackoverflow.com/a/25755861/3793161 (2认同)

Bra*_*ung 11

如果.md您提到的文件位于_posts并且布局类型为post,您可以使用 markdown="0" 或 "1" 将相关部分设置为 Markdown 或 HTML,因为您将 markdown 配置为kramdown。尝试以下代码:

---
layout: post
title: Home
---

# Markdown part

This is a [Markdown](http://daringfireball.net/projects/markdown/) file.

<section id="categories" markdown="1">

A list of categories:

- foo
- bar

</section>

<div id="html" markdown="0">
<h1>HTML part</h1>

  <ul>
    <li>Foo</li>
    <li>Bar</li>
  </ul>

</div>
Run Code Online (Sandbox Code Playgroud)

如果.md您提到的文件位于_includes_layoutspage,您可以直接使用您的代码或将布局类型更改为page

---
layout: default
title: Home
---

This is a [Markdown](http://daringfireball.net/projects/markdown/) file.

{% include foobar.html %}
Run Code Online (Sandbox Code Playgroud)

请参阅此处的示例: https: //raw.githubusercontent.com/plusjade/jekyll-bootstrap/master/index.md

享受就好。

  • 谢谢!我还可以在这里找到文档:https://kramdown.gettalong.org/syntax.html#html-blocks (2认同)