我有一个 jekyll 集合_persons,有多个人的个人资料。现在我想为每个人创建多个布局,例如,为同一个人创建一个“出版物”和一个“生物”子页面。
如何将不同的布局与同一个人物对象相关联?我还想使用子网址,例如:
\personA\publications\\personA\bio\假设“bios”是您将要编辑的内容类型,您可以在项目根目录中从_biosto创建符号链接_publications:
# Unix/Linux
ln -s _bios _publications
Run Code Online (Sandbox Code Playgroud)
如果您使用 Windows,则需要查看mklink.
然后像这样设置你的 config.yml:
collections:
bios:
output: true
publications:
output: true
defaults:
-
scope:
path: "_bios"
values:
layout: bio
permalink: /biographies/:title/
-
scope:
path: "_publications"
values:
layout: publication
permalink: /publications/:title/
Run Code Online (Sandbox Code Playgroud)
在_bios目录中为您的人员编辑 Markdown 文件,并且不要在他们的前端指定布局或永久链接。
当您的网站建立时,您将获得像example.com/publications/personA和 之类的永久链接example.com/bios/personA。你可以通过循环site.publications和site.bios往常一样。
您需要定义bio和publication布局,这些将可以访问您在bio集合项的前端定义的任何数据。
这个想法的功劳:https : //github.com/jekyll/jekyll/issues/3041#issuecomment-267730851
将集合_persons作为单一事实点并从该集合中创建两个符号链接可能更具语义。
祝你好运!