在html文件中包含markdown文件

问题描述 投票:0回答:2

在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>

现在,我有两个降价页面,我需要以某种方式包含在dev.html文件中。我怎样才能做到这一点?我尝试过使用变量{{content}},但这会在dev.html文件中同时包含两个页面。

怕个1.面对

---
layout: dev
---
page1 file content in markdown...

怕个2.面对

---
layout: dev
---
page2 file content in markdown...
html markdown jekyll github-pages github-flavored-markdown
2个回答
0
投票

据我所知,不可能在布局文件中“加载”两个不同的页面。

页面是否必须具有YAML前端问题? 如果没有,我有一个不同的解决方案:使用Jekyll的Includes

包括工作的方式基本上是这样的:

  • 您将一些HTML文件放在_includes文件夹中,例如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>

怕个1.面对

(没有前面的事情)

page1 file content in markdown...

怕个2.面对

(没有前面的事情)

page2 file content in markdown...

0
投票

我会这样做:

---
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>
© www.soinside.com 2019 - 2024. All rights reserved.