Изменение блоков кода mkdocs с помощью настраиваемой темы

Я пытаюсь добавить некоторые элементы html (например, div) в настраиваемую тему, которые обертывают сгенерированные mkdocs блоки кода из вывода html.

mkdocs имеет свои изолированные блоки кода с тройными обратными кавычками ``` stuff ```, и когда он производит вывод html, он создает <pre><code (some stuff here)> stuff </pre></code>. Мне было интересно, есть ли способ с настраиваемыми темами, которые сохраняют вывод тегов pre и code с атрибутом highlight.js class, но также позволяют мне обернуть его в настраиваемый div, чтобы я мог помещать блоки кода в контейнер с некоторыми другими элементами .


person yo76yo    schedule 19.07.2019    source источник


Ответы (1)


Блоки кода генерируются парсером Markdown, а не шаблоном MkDocs. Фактически HTML, созданный с помощью Markdown для страницы, передается в шаблон как один блок. Следовательно, чтобы изменить вывод HTML с помощью Markdown, вам необходимо использовать расширение Markdown. MkDocs использует Python-Markdown и полностью поддерживает Python-Markdown расширения.

Если он существует, вы можете использовать существующее стороннее расширение. который обеспечивает желаемое поведение. Кроме того, вы можете создать собственное собственное расширение.

person Waylan    schedule 20.07.2019
comment
Спасибо за совет! Я только что написал плагин для mkdocs, чтобы делать то, что мне нужно. Для этого я использовал переопределение on_post_page. - person yo76yo; 06.08.2019