Mkdocs 消除文件中的复制粘贴

Mkdocs eliminate copy paste in files

我能否以某种方式将文件包含到 mkdocs 中的文件中? 我不想一次又一次地复制粘贴相同的部分。 谢谢

将一个文档包含在另一个文档中不是 Markdown 功能,目前 MkDocs 仅对 Markdown 文档进行 Markdown 处理。因此,目前无法使用 MkDocs 执行此操作。

有趣的是,似乎甚至没有人提出过这样的功能请求。有一个待定的功能可以使各种变量可用于在 Markdown 页面中显示(参见问题 #304),但没有提到包括其他文档。也就是说,根据所选择的解决方案,有可能 if/when 问题得到解决,它还提供包含其他页面的能力。

无论哪种方式,if/when 添加了一个插件 API(请参阅问题 #206)您应该能够进行任何您自己的预占有,其中包括 运行在解析 Markdown 之前,通过模板系统支持 "including" 页面的 Markdown 文本。事实上,我希望如果您要提出功能请求,答案将是将其提交给插件。

@doktoric 是正确的:澄清一下,MkDocs 中有一个包含外部文件的解决方案,其中涉及使用 markdown-include extension.

语法如下:

{!filename.md!}

实现这个的过程是:

  1. 根据说明安装扩展程序(pip install markdown-include)
  2. 修改 mkdocs.yml 文件,为您的网站 sees explanations 及以下注册此扩展程序。
  3. 开始在 markdown 文件中使用语法扩展。

mkdocs.yml文件中:

    markdown_extensions:
        include

更新(2020 年 9 月)

现阶段我建议的解决方案是 mkdocs-macros plugin (which I wrote). The plugin implements a jinja2 template engine, which means that the {% include ... %} statement is available out of the box:

## Paragraph
{% include 'snippet.md' %}

只需安装插件,在 mkdocs.yml 中声明即可。