2

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

4

2 回答 2

4

@doktoric 是正确的:直接设置记录,MkDocs 中有一个解决方案用于包含外部文件,其中涉及使用markdown-include 扩展名

语法如下:

{!filename.md!}

实现这一目标的过程是:

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

mkdocs.yml文件中:

    markdown_extensions:
        include

更新(2020 年 9 月)

在这个阶段我建议的解决方案是通过mkdocs-macros 插件(我写的)。该插件实现了一个 jinja2 模板引擎,这意味着{% include ... %}语句是开箱即用的

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

只需安装插件,在 中声明它mkdocs.yml,就可以了。

于 2018-07-09T17:42:38.473 回答
1

在另一个文档中包含一个文档不是 Markdown 功能,目前 MkDocs 仅对 Markdown 文档进行 Markdown 处理。因此,目前没有办法用 MkDocs 做到这一点。

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

无论哪种方式,如果/当添加了插件 API(请参阅问题#206),您应该能够自己进行任何预处理,包括在解析 Markdown 之前通过支持“包含”页面的模板系统运行 Markdown 文本. 事实上,我希望如果您要提出功能请求,答案是把它放到插件中。

于 2016-03-10T16:41:53.130 回答