我发现自己有一个用例,除了从基于Sphinx的文档源生成 HTML 和 PDF 之外,我还想生成reStructuredText源文件的Markdown版本。
我的初步研究没有在Sphinx中找到任何对此的核心或扩展支持。除了手动使用pandoc或为任务创建新的Sphinx扩展之外,是否有更简单/更集成的解决方案?
我发现自己有一个用例,除了从基于Sphinx的文档源生成 HTML 和 PDF 之外,我还想生成reStructuredText源文件的Markdown版本。
我的初步研究没有在Sphinx中找到任何对此的核心或扩展支持。除了手动使用pandoc或为任务创建新的Sphinx扩展之外,是否有更简单/更集成的解决方案?
除了 Pandoc 之外,我没有找到任何可以获取 reStructuredText 文件并将它们转换为 Markdown 的东西,所以我为Docutils编写了一个自定义编写器(reStructuredText 的参考实现以及 Sphinx 的构建基础)。代码可在 GitHub 上找到。
请注意,它只是一个初始实现:它可以无错误地处理任何 reStructuredText 文档(针对 Docutils 源存储库中的standard.txt测试文档进行测试),但不支持许多 reStructuredText 构造(例如替换、原始指令等),并且所以不包含在 Markdown 输出中。我希望添加对链接、代码块、图像和表格的支持:对此的任何帮助都非常受欢迎 - 继续前进并分叉代码。
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 请求的人 - 这使得区别!
如果您想使用 pandoc,为什么不简单地更改第一次运行 sphinx-quickstart.py 时生成的 Makefile Sphinx 以将 reStructuredText 转换为 Markdown?
这是最简单的解决方案,尽管如果您将 Chris 的解决方案合并到 Makefile 中,它应该也可以工作。