我可以以某种方式将文件包含到 mkdocs 中的文件中吗?我不想一次又一次地复制粘贴相同的部分。谢谢
2 回答
@doktoric 是正确的:直接设置记录,MkDocs 中有一个解决方案用于包含外部文件,其中涉及使用markdown-include 扩展名。
语法如下:
{!filename.md!}
实现这一目标的过程是:
- 按照说明安装扩展程序 (
pip install markdown-include
) - 修改
mkdocs.yml
文件,为您的网站注册此扩展程序,请参阅说明,以及下文。 - 开始在 Markdown 文件中使用语法扩展。
在mkdocs.yml
文件中:
markdown_extensions:
include
更新(2020 年 9 月)
在这个阶段我建议的解决方案是通过mkdocs-macros 插件(我写的)。该插件实现了一个 jinja2 模板引擎,这意味着该{% include ... %}
语句是开箱即用的:
## Paragraph
{% include 'snippet.md' %}
只需安装插件,在 中声明它mkdocs.yml
,就可以了。
在另一个文档中包含一个文档不是 Markdown 功能,目前 MkDocs 仅对 Markdown 文档进行 Markdown 处理。因此,目前没有办法用 MkDocs 做到这一点。
有趣的是,似乎没有人提出过这样的功能要求。有一个待定功能可以使各种变量可用于在 Markdown 页面中显示(请参阅问题#304),但没有提及包含其他文档。也就是说,根据选择的解决方案,如果/当问题得到解决,它也可能提供包含其他页面的能力。
无论哪种方式,如果/当添加了插件 API(请参阅问题#206),您应该能够自己进行任何预处理,包括在解析 Markdown 之前通过支持“包含”页面的模板系统运行 Markdown 文本. 事实上,我希望如果您要提出功能请求,答案是把它放到插件中。