2013-02-03 54 views
35

我可能错过了简单的东西,但我无法在本地测试Jekyll。如何在网站上渲染Jekyll降价页索引

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

结构为:

的Index.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

回答

37

有几件事情怎么回事。

  1. 在你_layouts/default.html文件(及任何其他_layouts目录中的文件为此事),而不是:

    {{ page.content }} 
    

    你需要使用:

    {{ content }} 
    
  2. 杰基尔只允许您包含站点根级别_includes目录中的文件。所以,你需要将你的content.md从根目录移动到该目录(如果它不存在)。

  3. 最后,您需要从index.html文件实际调用包含文件。这可以通过您的index.html文件的内容改变来完成:

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

,将设置你正在寻找的行为。


我想指出的其他两件事情:

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

  2. 如果您在索引文件中所做的只是调用一个只存在于该页面上的include,那么您可能只需将内容直接放入索引文件即可。

+0

谢谢艾伦,我做了你所说的,没有任何渲染。此外,对于您仅提供'index.md'的建议,我最初尝试过,也没有工作。 GitHub链接随之更新,并在'old_index.html'中包含您的初始建议。 – Wyck

+1

现在还有其他事情正在进行。你的index.md文件在开始时有一些不可见的字符,它们正在抛弃解析器。当我在文件中读取“head”时,不会看到第一行的“---”,而是返回“?? ---”。我无法通过删除该行来摆脱它。我不得不重新创建文件。所以,试着把它吹走并重建它(http://pastebin.com/i4zMEAaV)。您还需要从_layouts目录中删除contend.md。它具有相同的奇怪的不可见字符,当我尝试在本地运行时,它会崩溃。一旦我做了这两件事,jekyll工作。 –

+0

是的,这是它,各种怪异的字符,可能是因为我曾使用Pandoc将原始HTML转换为降价,或者它可能只是Windows的行为不端,谢谢 – Wyck

0

include只允许您直接在_includes/下包含文件。还有include_relative它允许您使用路径和其他地方包括。在包括具有相对于但给定的文件:

{% include_relative somedir/footer.html %} 

有一个问题有两种方法包括我解决不了:如果包括文件具有前面的问题杰奇不会破坏它出。所以你不能使用前置物来存储包含特定的元数据 - 比如说“标题”。当然,你可以使用变量 - {% assign title = "My Title" %},但它不是等价的,因为如果你想要包含的东西成为集合的一部分或独立渲染,你必须有一个前置的问题。