【问题标题】:Include markdown file in html file在 html 文件中包含 markdown 文件
【发布时间】:2018-03-01 22:28:11
【问题描述】:

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

【问题讨论】:

  • 您已将此标记为 [jekyll]。 Jekyll 有办法做到这一点(HTML 是“模板”,Markdown 文档是“页面”。Jekyll 怎么不适合你?
  • 我也在尝试使用变量来做到这一点,但还没有运气。我已经创建了布局,并且在布局中我想使用变量来显示例如 3 个不同的 .md 文件,但不知道如何使用这些变量。
  • 啊,你问的不是很清楚。请提供更多信息,以便我们为您提供帮助。不要使用评论,而是编辑您的问题。
  • 好的,我已经编辑了问题,希望现在清楚。

标签: html markdown jekyll github-pages github-flavored-markdown


【解决方案1】:

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

页面必须有 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>

page1.md

(无前题)

page1 file content in markdown...

page2.md

(无前题)

page2 file content in markdown...

【讨论】:

    【解决方案2】:

    我会这样做:

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

    【讨论】:

      猜你喜欢
      • 2016-07-31
      • 2016-10-12
      • 2017-05-27
      • 2011-06-19
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      相关资源
      最近更新 更多