向MkDocs添加自定义Jinja2过滤器/测试



在为MkDocs编写Jinja2模板时,我需要一些可用过滤器/测试未涵盖的处理(特别是,我需要日期格式,这是Web上Jinja2相关资源中自定义过滤器的一个常见示例(我如何定义自己的过滤器/测试并从模板中使用它们

为了澄清这个问题,我知道如何在Python的Jinja2环境中注册新的过滤器/测试。我的问题是,作为MkDocs的用户,我自己不配置Jinja2。因此,我正在寻找一种连接到MkDocs执行的设置中的方法。

我认为可以从插件中添加过滤器。事实上,我发现了一个这样的插件(不幸的是,没有文档,显然没有在积极开发中(。然而,我希望有一个更简单的本地解决方案;一个不涉及实现插件、将其打包为Python包并在PyPi上发布的插件。

一个可能的解决方案是使用mkdocs简单挂钩,它允许在不需要创建插件的情况下实现挂钩。例如:

plugins:
- mkdocs-simple-hooks:
hooks:
on_env: "docs.hooks:on_env"

docs/hook.py

def on_env(env, config, files, **kwargs): 
env.filters['my_filter'] = my_filter
env.tests['my_test'] = my_test
return env

最新更新