38

我可能遗漏了一些简单的东西,但我无法在本地测试 Jekyll。

我正在使用 GitHub 页面来呈现 Jekyll,对于初学者来说,我只想 从一个降价页面在主index.html上呈现降价内容。

结构是:

索引.html

---
layout: default
---

_layouts
- default.html

//html stuff..
<section>

{{page.content}}

</section>

在根文件夹中,我有一个名为content.md我希望为{{page.content}}布局渲染渲染的页面,但液体标签部分为空白。

我该如何渲染content.md

示例:https ://github.com/wycks/wordpress-gears-jekyll

4

3 回答 3

40

这里发生了一些事情。

  1. 在您的_layouts/default.html文件(以及与此相关的任何其他_layouts目录文件)中,而不是:

    {{ page.content }}
    

    你需要使用:

    {{ content }}
    
  2. Jekyll 只允许你包含来自站点根_includes目录的文件。因此,您需要将您的content.md从根目录移动到该目录(如果它尚不存在,则创建它)。

  3. 最后,您需要从 index.html 文件中实际调用包含文件。这可以通过将 index.html 文件的内容更改为:

    ---
    layout: default
    ---
    
    {% include content.md %}
    

这将设置您正在寻找的行为。


我要指出另外两点:

  1. 您可能会发现将索引文件的扩展名从更改.html.md效果更好。.html一个重要的注意事项:如果你想要分页,你需要使用。根据Jekyll Pagination 文档,该功能仅在文件命名时才有效index.html

  2. 如果您在索引文件中所做的只是调用仅驻留在该页面上的包含,那么您最好将内容直接放在索引文件中。

于 2013-02-03T02:36:06.770 回答
1

include只允许您将文件直接包含在_includes/. 还有include_relative允许您使用路径并从其他地方包含。包含必须与给定文件相关,但是:

{% include_relative somedir/footer.html %}

任何一种包含方法都有一个我无法解决的问题:如果您包含的文件有前面的内容,Jekyll 不会将其删除。所以你不能使用前端来存储包含特定的元数据——比如“标题”。当然,您可以使用变量 -{% assign title = "My Title" %}但它并不等同,因为如果您希望包含的内容成为集合的一部分或独立呈现,您必须有一个前端问题。

于 2016-12-03T00:58:51.670 回答
0

我相信这只是

{{ content }}

好先生。

参考

于 2013-02-03T02:16:26.597 回答