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

Automate Jekyll page.categories according to directory structure

目标

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

描述

官方 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 目录必须在根目录中,所以对我来说将 post 定位在像 /work/code/_posts/2008-12-24-closures.md 这样的路径中似乎是不可能的。可能吗?还是不可能?

  2. 如果 1. 不可能 ,我如何为每个 post 匹配类别和目录结构?我不想每 post 秒手动执行一次。
    我尝试使用 {{ page.path }} 使其自动化,但遇到了 2 个问题。 1) 不确定 Liquid(template engine) 是否支持完整的 ruby 功能,例如 File.basename 用于解析。 2) 不确定是否可以在 Front Matter 中完成解析之类的代码。例如,我在 Front Matter 中尝试了 categories: {{ page.path | array_to_sentence_string }},但最终出现错误。

这些问题有什么解决办法吗?还是没有办法?

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

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