在Jekyll中,我们可以将多个集合分组到同一个文件夹中吗?

时间:2016-04-25 21:35:18

标签: collections jekyll

在config.yml中,我定义了我的集合:

collections:
  music:
    output: false
  dancing:
    output: false

问题是我会有很多收藏品,它们会混乱我的根Jekyll文件夹。

有没有办法将所有集合分组到一个文件夹中,例如_collections?

所以,我会:

_collections
     _dancing
     _music
     ....

4 个答案:

答案 0 :(得分:3)

答案是否定的。您的集合文件夹必须位于根文件夹的根目录。

即使你给自己命名,也可以在_collections / _music文件夹中创建一个集合,并将其设置为:

collections:

  collections/_music folder:
    output: true

Jekyll因为路径清理过程而最终在_collections_music folder(没有任何斜线)中查找您的收藏。

请参阅collection.rbsite.rbjekyll.rb

中的jekyll代码

答案 1 :(得分:3)

现在可以 (我正在运行Jekyll 3.7.2,我不确定这是在哪个版本中实现的。)

以下是如何操作:在_config.yml中,您可以定义集合以及集合的文件夹。让我们看一下我正在研究的客户端网站上的示例:

collections:
  events:
    output: true
  work:
    output: true
  jobs:
    output: true
  cases:
    output: true
    permalink: /work/:name
collections_dir: pages

collections_dir: [your_folder_here]会告诉Jekyll查看该文件夹的集合。我在开发中的文件夹结构如下:

pages/
  ...
  _events/
  _work/
  _jobs/
  _cases/

在编译的网站中,它如下:

...
events/
jobs/
work/ (contains both "work" and "cases" collections)

还有一件事没有问过,但我发现它很有用,就是你能够将不同的集合输出到同一个文件夹。就我而言,我有一个客户网站,其中有两种类型的工作样本:客户案例和一般示例。我们希望将它们分开以便更好地进行维护,但也要将它们显示在同一文件夹中要实现此目的,您只需为集合定义永久链接即可。在我们的案例中,我们将案例的永久链接显示在work文件夹(permalink: /work/:name)中。

希望这有帮助!

这也出现在Jekyll documentation

答案 2 :(得分:1)

没有什么可以阻止您在集合中使用子文件夹。 (注意:这不是您问题的答案,而是可能的解决方法)

因此,作为一种解决方法,您可以只拥有一个集合:例如说_arts并组织您的文件夹,如:

_arts
     dancing
     music
     concerts
     .....

单独列出它们可以使用:

  1. 文件中的FrontMatter变量category: dancing 当您有输出时,请检查此选项以获取仅限跳舞列表。
  2. {% for project in site.arts %} {% if project.category == 'dancing' %} .... {% endif %} {% endfor %}

    1. 或检查集合无输出时的路径
    2. {% for project in site.arts %} {% if project.url contains 'dancing' %} .... {% endif %} {% endfor %}

      如果您内置了数百个项目,这可能会降低您的构建速度。

答案 3 :(得分:0)

this issue合并以来,现在可以这样做了。

  

用户配置为:

collections_dir: my_collections
     

然后我们在my_collections / _pizza中查找披萨系列,并在my_collections / _lasagna中查看烤宽面条系列。