根据目录结构自动化Jekyll page.categories

时间:2016-12-26 06:29:55

标签: ruby jekyll liquid

目标

根据目录结构使Jekyll帖子拥有自己的类别 例如)_post/category1/category2/post-content.md必须包含['category1', 'category2']的类别(我猜Jekyll将类别作为数组处理)。
关键是,1)无需在Front Matter中指定类别,2)按目录结构自动对每个帖子进行分类。

描述

Jekyll官方文件说Categories are derived from the directory structure above the _post directory. For example, a post at /work/code/_posts/2008-12-24-closures.md would have this field set to ['work', 'code'].
https://jekyllrb.com/docs/variables/

  1. 如果有可能,我会很乐意使用这个功能。问题是,我不知道如何让_post目录位于其他目录中。我认为_post dir必须在root目录中,所以对我来说,在/work/code/_posts/2008-12-24-closures.md之类的路径中定位帖子似乎是不可能的。可能吗?或者不可能?

  2. 如果1. 不可能,我如何为每个帖子匹配category和dir-struct?我不想为每个帖子手动完成。
    我尝试使用{{ page.path }}使其自动化,但我遇到了2个问题。 1)不确定Liquid(template engine)支持完整的ruby功能,如File.basename进行解析。 2)不确定是否可以在Front Matter中完成解析等代码。例如,我在categories: {{ page.path | array_to_sentence_string }}中尝试了Front Matter,但最终出现了错误。

  3. 针对这些问题的任何解决方案?或者没有办法?

1 个答案:

答案 0 :(得分:1)

您正确遵循指示:您可以使用任一文件夹结构,但后者是首选。

问题是特殊目录是_posts PLURAL,而不是_post单数。