33

我发现自己有一个用例,除了从基于Sphinx的文档源生成 HTML 和 PDF 之外,我还想生成reStructuredText源文件的Markdown版本。

我的初步研究没有在Sphinx中找到任何对此的核心或扩展支持。除了手动使用pandoc或为任务创建新的Sphinx扩展之外,是否有更简单/更集成的解决方案?

4

3 回答 3

25

除了 Pandoc 之外,我没有找到任何可以获取 reStructuredText 文件并将它们转换为 Markdown 的东西,所以我为Docutils编写了一个自定义编写器(reStructuredText 的参考实现以及 Sphinx 的构建基础)。代码可在 GitHub 上找到

请注意,它只是一个初始实现:它可以无错误地处理任何 reStructuredText 文档(针对 Docutils 源存储库中的standard.txt测试文档进行测试),但不支持许多 reStructuredText 构造(例如替换、原始指令等),并且所以不包含在 Markdown 输出中。我希望添加对链接、代码块、图像和表格的支持:对此的任何帮助都非常受欢迎 - 继续前进并分叉代码。

似乎要向 Sphinx 添加另一种编写器/输出格式,您需要使用扩展名添加“构建器”

于 2012-11-20T16:53:17.167 回答
20

18 月 18 日更新sphinx-markdown-builder现在可用 - 感谢@Jam Risser:

安装

pip3 install sphinx-markdown-builder

依赖项

蟒蛇 3

用法

在配置中加载扩展。

配置文件

extensions = [
    'sphinx_markdown_builder'
]

如果使用recommonmark,请确保明确忽略构建文件,因为它们会与系统冲突。

配置文件

exclude_patterns = [
    'build/*'
]

使用 Makefile 构建 markdown 文件

make markdown

使用 sphinx-build 命令构建 markdown 文件

cd docs
sphinx-build -M markdown ./ build

参考

附言。过时的原始答案(因为sphinx-markdown-builder现在可用):在 Sphinx 项目站点上创建了直接 Markdown 输出支持的功能请求: https ://github.com/sphinx-doc/sphinx/issues/4219 感谢所有支持该 github 请求的人 - 这使得区别!

于 2017-11-06T06:12:55.893 回答
1

如果您想使用 pandoc,为什么不简单地更改第一次运行 sphinx-quickstart.py 时生成的 Makefile Sphinx 以将 reStructuredText 转换为 Markdown?
这是最简单的解决方案,尽管如果您将 Chris 的解决方案合并到 Makefile 中,它应该也可以工作。

于 2013-05-07T23:43:18.237 回答