簡體   English   中英

在HTML文件中包含markdown文件

[英]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>

現在,我有那兩個markdown頁面,我需要以某種方式將它們包含在dev.html文件中。 我怎樣才能做到這一點? 我嘗試使用變量{{content}}但它將在dev.html文件中一次包含兩個頁面。

page1.md

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

page2.md

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

據我所知,不可能在布局文件中“加載”兩個不同的頁面。

頁面是否必須具有YAML的前身?
如果沒有,我為您提供一個不同的解決方案:使用Jekyll的Includes

包含工作的方式基本上是這樣的:

  • 您將一些HTML文件放在_includes文件夾中,例如foo.html
  • 您可以將其內容包含在另一個文件中,如下所示: {% include foo.html %}

唯一的問題是,默認情況下,includes應該是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

(無前題)

page1 file content in markdown...

page2.md

(無前題)

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM