使用自定义主题更改 mkdocs 代码块

Changing mkdocs code blocks with a custom theme

我正在尝试在自定义主题中添加一些 html 元素(如 div),以包装 mkdocs 从 html 输出生成的代码块。

mkdocs 的围栏代码块带有三个反引号 ``` stuff ```,当它产生 html 输出时,它会创建 <pre><code (some stuff here)> stuff </pre></code>。我想知道是否有一种自定义主题的方法可以保留带有 highlight.js class 属性的前标签和代码标签输出,但也允许我将其包装在自定义 div 中,这样我可以将代码块与其他一些元素放在一个容器中。

代码块由 Markdown 解析器生成,而不是由 MkDocs 模板生成。实际上,从页面的 Markdown 生成的 HTML 作为单个块传递给模板。因此,要更改 Markdown 输出的 HTML,您需要使用 Markdown 扩展。 MkDocs 使用 Python-Markdown and fully supports Python-Markdown extensions.

如果存在,您可以使用现有的 third party extension which provides the desired behavior. Alternatively, you could create your own 自定义扩展。