Я хотел бы написать плагин для 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 или местоположение файла уценки. Случайно ли это будет частью словаря config
?
Обновление
Я написал плагин и сделал его доступным на github . Большое спасибо за вашу помощь.