【发布时间】:2016-08-30 21:41:13
【问题描述】:
编辑:我创建了一个存储库here,用于测试下面的 jibe 答案。当我访问/animals 时,我只是得到一个空白页面,因此感谢您的帮助!
这是这个问题的后续:Hierarchical Categories in GitHub Pages
在那个问题中,我发现了如何列出特定层次类别的帖子。现在我想弄清楚如何列出特定层次类别的子类别。
我在 GitHub 页面上使用 Jekyll,我希望有这样的分层类别:
- 动物 -> 哺乳动物 -> 猫 -> _posts -> housecat.md, tiger.md
- 动物 -> 哺乳动物 -> 狗 -> _posts -> poodle.md, doberman.md
- 动物 -> 爬行动物 -> 蜥蜴 -> _posts -> iguana.md, chameleon.md
我希望用户能够访问 /animals 并查看子类别列表(mammals 和 reptiles)。然后,如果他们转到/animals/mammals,他们会看到cats 和dogs 被列为子类别。
我目前通过在每个子类别中放置一个index.html 文件来手动执行此操作。但这使得更新事情比它应该做的要复杂得多。
我试过关注this answer,但那是针对单个标签,而不是多个类别。
问题是任何特定类别都可能不是唯一的,所以我可以有这样的东西:
- 动物 -> 哺乳动物 -> 蝙蝠 -> _posts -> vampire.md, fruit.md
- 运动 -> 棒球 -> 蝙蝠 -> _posts -> wiffle.md, teeball.md
我还希望能够在子类别中定义 frontmatter 属性,也许在每个子类别的 index.html 文件中?例如,animals->mammals->bats->index.html 文件将包含一个值为 "VampireBat.jpg" 的 frontmatter 变量 thumbnail,而 sports->baseball->bats->index.html 将具有 thumbnail 的 "YellowWiffleBat.png"。我希望能够从父级别访问这些变量(以显示缩略图和指向子类别的链接)。
我的第一个想法是直接访问子类别,如下所示:
{% for mammalType in site.categories.animals.mammals %}
<p>{{ mammalType.title }}</p>
<img src="(( mammalType.thumbnail }}" />
{% endfor %}
我将使用页面本身的类别进行概括:
{% for subcategory in page.categories %}
<p>{{ subcategory.title }}</p>
<img src="(( subcategory.thumbnail }}" />
{% endfor %}
但这根本不起作用,因为site.categories.whatever 是该类别中所有帖子的列表,忽略了任何层次信息。
除了手动操作之外,还有更好的方法吗?
【问题讨论】:
标签: jekyll liquid github-pages