如何将元数据应用于内容目录中的所有文件

How to apply metadata to all files in a content directory

我有一个名为 foo 的内容目录,我希望该目录下的所有文件都有一个额外的元数据项 foovar: default,除非在文件头中明确覆盖。我认为我应该用EXTRA_PATH_METADATA来做这个,但我不知道它想要什么咒语。

(对于我当前的用例,我正在尝试在此目录中应用 template: sometemplate,但我有兴趣解决一般情况,因为它会解决一些相关的问题)

我想你要找的实际上是DEFAULT_METADATA。查看文档的 this portion

DEFAULT_METADATA = {}

The default metadata you want to use for all articles and pages.

所以,在你的情况下,它在你的配置文件中可能看起来像这样:

DEFAULT_METADATA = {'foovar': 'default'}

然后要分配您的自定义模板,请参阅文档的 this portion

我问的时候这是不可能的。我已经向开发人员发送了一个 PR 添加支持,并且它已经合并到 master 中。想必它会在下一个版本中推出。它使 EXTRA_PATH_METADATA 递归,因此您可以像这样将设置应用于子目录:

EXTRA_PATH_METADATA = {'dirname/subdir': {'status': 'hidden'}}