在config.yml中,我定义了我的集合:
collections:
music:
output: false
dancing:
output: false
问题是我会有很多收藏品,它们会混乱我的根Jekyll文件夹。
有没有办法将所有集合分组到一个文件夹中,例如_collections?
所以,我会:
_collections
_dancing
_music
....
答案 0 :(得分:3)
答案是否定的。您的集合文件夹必须位于根文件夹的根目录。
即使你给自己命名,也可以在_collections / _music文件夹中创建一个集合,并将其设置为:
collections:
collections/_music folder:
output: true
Jekyll因为路径清理过程而最终在_collections_music folder
(没有任何斜线)中查找您的收藏。
答案 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
.....
单独列出它们可以使用:
category: dancing
当您有输出时,请检查此选项以获取仅限跳舞列表。 {% for project in site.arts %}
{% if project.category == 'dancing' %}
....
{% endif %}
{% endfor %}
{% 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中查看烤宽面条系列。