Jekyll如何处理_posts / subdir中的帖子

时间:2013-03-07 18:39:25

标签: jekyll

Jekyll Bootstrap项目在_posts / core-samples /目录中有一个示例博客文章。

我假设子主导中的帖子(文件)的处理方式与根目录中的帖子相同。这是对的吗?

如果是这样,我会添加一个“stage”子目录,将其排除,这样我就可以停放帖子并通过移动它们来发布它们。

4 个答案:

答案 0 :(得分:5)

意外地在post - yaml部分找到了它:

  

您可以指定一个或,而不是将帖子放在文件夹中   帖子所属的更多类别。生成站点时   该帖子将表现为好像已经设置了这些类别   一般。类别(复数键)可以指定为YAML列表或   以空格分隔的字符串。

所以子目录==类别

答案 1 :(得分:5)

因为差异仅在post.path,所以我同意你的陈述:

  子主题中的

帖子(文件)的处理方式与帖子中的相同    root diretory

您可以将帖子停放在_posts/core-samples/目录中并按照以下方式发布:

{% for post in site.posts %}
  {% if post.path contains 'core-samples' %}
     ..your code
  {% endif %}
{% endfor %}  

作为工作示例,您可能会看到this codeparked posts中发布这些their section的方式。

答案 2 :(得分:1)

实际上,该声明所说的是将_posts文件夹放在子目录中。 然后该子目录将被视为类别。

答案 3 :(得分:0)

我到这里结束是因为我想创建以下结构:

index.html
_animals
  cats
    my-cat.html
    ...
  dogs
    my-dog.html
    ...

我创建了该结构,然后在_config.yml中创建了

collections:
  animals:
    output: true
    permalink: /animal/:title.html

最后,只把狗放到index.html

<div id='dogs'>
  {% for a in site.animals %}
    {% if a.path contains 'dogs' %}
      <a href='{{ a.url }}'>{{ a.title }}</a>
    {% endif %}
  {% endfor %}
</div>

注意:这种方法要求包含所有记录(在我的示例中为_animals)的目录不能命名为_posts,因为后者在Jekyll中是一个特殊名称。