如何将reStructuredText转换为纯文本

16

我计划使用reStructuredText编写文档,主要目的是生成一些漂亮的HTML页面。为此,我使用docutils的rst2html.py工具。

然而,我可能还需要以漂亮的纯文本格式呈现文档,即没有reStructuredText标记,并且仍对文本输出执行段落换行和类似的漂亮格式化。但是,docutils中没有rst2txt.py工具。

是否有一种将reStructuredText转换为漂亮的纯文本格式的方法,也许可以利用docutils的特殊选项?


4
我认为reStructuredText就是你一开始寻找的“漂亮纯文本格式”! - Martin Ueding
2个回答

13

我还看到过使用rst2html将文本呈现为html,然后使用命令行html浏览器(例如lynx、links、w3m或elinks)将html转换为纯文本的方法:

这些浏览器中的每一个都有一个命令行开关或类似的东西,可以将其输出呈现为.txt文件,因此您可以创建一个名为“rst2txt”的两行脚本,类似于:

rst2html docs.rst docs.html
lynx -dump docs.html > docs.txt

这个对我来说效果最好。我认为“正确”的做法是编写一个XLST样式表将其转换为txt,或者可能是org-mode。 - JeffG

11
Sphinx为txt输出格式提供了TextBuilder。我刚试过了,它似乎能满足你的需求。
不过,可能有点过时,因为它不在默认的Makefile中。但是,在我的相当复杂的文档(150页PDF)上运行良好。要使用它,只需将以下目标添加到Makefile中即可。
text:
    $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) _build/text
    @echo
    @echo "Build finished."

另外,请记住Sphinx只实现了rst规范的一个子集。


谢谢Thoriann,我通过makefile成功地让它工作了。我还想直接从Python中使用TextBuilder,但是我找不到任何关于它的文档。你知道在哪里可以找到TextBuilder类的文档,或者有没有简短的示例展示如何从Python中使用它?最好的问候,Morten - DrZ
我也不知道有关此事的任何文档。您可以查看Sphinx源代码中的cmdline.py以获取示例。如果您真的想要,似乎是可行的。 - tsg
@Thoriann:Sphinx只能呈现rst的子集?你为什么这么认为? - Kevin Horn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接