在 html 文件中包含降价文件
Include markdown file in html file
在 Jekyll 中,我创建了一个布局文件 dev.html
,它已经在使用其他一些 layout: default
,但这并不重要。
dev.html
---
layout: default
title: Developer
---
<div>
{{ want to include page1.md }}
</div>
<div>
{{ want to include page2.md }}
</div>
现在,我有那 2 个降价页面,我需要以某种方式将其包含在 dev.html 文件中。我怎样才能做到这一点?我曾尝试使用变量 {{content}}
,但这会在 dev.html
文件中同时包含两个页面。
page1.md
---
layout: dev
---
page1 file content in markdown...
page2.md
---
layout: dev
---
page2 file content in markdown...
据我所知,在一个布局文件中 "load" 两个不同的页面是不可能的。
页面是否必须包含 YAML front-matter?
如果没有,我有一个不同的解决方案:使用 Jekyll 的 Includes.
包括工作的方式基本上是这样的:
- 您在
_includes
文件夹中放置了一些 HTML 个文件,例如 foo.html
- 您可以像这样将它们的内容包含到另一个文件中:
{% include foo.html %}
唯一的问题是默认情况下,包含的文件应该是 HTML 个文件。但是可以使用 Markdown 文件作为包含,并使用 Liquid 的 markdownify
过滤器呈现 Markdown。
示例:
dev.html
(常规页面,不是布局文件)
---
layout: default
title: Developer
---
<div>
{% capture p1 %}{% include page1.md %}{% endcapture %}
{{ p1 | markdownify }}
</div>
<div>
{% capture p2 %}{% include page2.md %}{% endcapture %}
{{ p2 | markdownify }}
</div>
page1.md
(无front-matter)
page1 file content in markdown...
page2.md
(无front-matter)
page2 file content in markdown...
我会这样做:
---
layout: default
title: Developer
---
<div>
{% assign sitepages = site.pages | where: "slug", "page1" %}
{% for p in sitepages %}
{{ p.content }}
{% endfor %}
</div>
<div>
{% assign sitepages = site.pages | where: "slug", "page2" %}
{% for p in sitepages %}
{{ p.content }}
{% endfor %}
</div>
在 Jekyll 中,我创建了一个布局文件 dev.html
,它已经在使用其他一些 layout: default
,但这并不重要。
dev.html
---
layout: default
title: Developer
---
<div>
{{ want to include page1.md }}
</div>
<div>
{{ want to include page2.md }}
</div>
现在,我有那 2 个降价页面,我需要以某种方式将其包含在 dev.html 文件中。我怎样才能做到这一点?我曾尝试使用变量 {{content}}
,但这会在 dev.html
文件中同时包含两个页面。
page1.md
---
layout: dev
---
page1 file content in markdown...
page2.md
---
layout: dev
---
page2 file content in markdown...
据我所知,在一个布局文件中 "load" 两个不同的页面是不可能的。
页面是否必须包含 YAML front-matter?
如果没有,我有一个不同的解决方案:使用 Jekyll 的 Includes.
包括工作的方式基本上是这样的:
- 您在
_includes
文件夹中放置了一些 HTML 个文件,例如foo.html
- 您可以像这样将它们的内容包含到另一个文件中:
{% include foo.html %}
唯一的问题是默认情况下,包含的文件应该是 HTML 个文件。但是可以使用 Markdown 文件作为包含,并使用 Liquid 的 markdownify
过滤器呈现 Markdown。
示例:
dev.html
(常规页面,不是布局文件)
---
layout: default
title: Developer
---
<div>
{% capture p1 %}{% include page1.md %}{% endcapture %}
{{ p1 | markdownify }}
</div>
<div>
{% capture p2 %}{% include page2.md %}{% endcapture %}
{{ p2 | markdownify }}
</div>
page1.md
(无front-matter)
page1 file content in markdown...
page2.md
(无front-matter)
page2 file content in markdown...
我会这样做:
---
layout: default
title: Developer
---
<div>
{% assign sitepages = site.pages | where: "slug", "page1" %}
{% for p in sitepages %}
{{ p.content }}
{% endfor %}
</div>
<div>
{% assign sitepages = site.pages | where: "slug", "page2" %}
{% for p in sitepages %}
{{ p.content }}
{% endfor %}
</div>