我想为 mkdocs 编写一个插件,允许添加自定义 python 代码文件。这是一个插件示例。
我想将模块放在网站的主目录中,在mkdocs.yml
文件旁边,并在其中声明该模块,例如:
python_module=mycode.py
然后我会在插件的代码中使用,例如:
from mkdocs.plugins import BasePlugin
from jinja2 import Template
import importlib
class MarkdownExtraDataPlugin(BasePlugin):
"Execute piece of code"
def on_page_markdown(self, markdown, page, config, site_navigation, **kwargs):
python_module = config.get('python_module')
if python_module:
# Add path, here is the question:
python_module = os.path.join(*?????*, python_module)
# do import here:
importlib.import_module(python_module)
....
return result
我此时遇到的问题是我不知道模块的代码如何知道 yaml 文件的位置或 markdown 文件的位置。无论如何,这会成为config
字典的一部分吗?
更新
我编写了插件并在 github 上提供了它。非常感谢你的帮助。