编程语言
首页 > 编程语言> > python – 有reST作家吗?

python – 有reST作家吗?

作者:互联网

是否有docutil.nodes树的reST作家?我找不到一个,但也许我错过了一些明显的东西.或者自己写一个是微不足道的?我想实现reST-to-reST转换.

解决方法:

没有,并且如果不是不可能的话,实现超出微不足道的ReST标记是很困难的.

ReST角色和指令可以在分析时执行任意代码.特别是角色或指令可以创建具有任意内容的任意类型的节点并将其插入到文档树中.因此,文档树和ReST源代码之间没有直接映射,因此不可能获得任意文档树的原始ReST源代码 – 或者至少是接近的东西.

现实世界的例子是来自Sphinx的各种指令,例如潘岳:类.这些指令将pending_xref节点插入到文档树中,这些节点在稍后的时间点被解析为实际的交叉引用.但是,没有单个指令对应pending_xref节点,因此没有直接对应于包含此类节点的文档树的ReST源.

可以实现用于简单标准ReST标记的编写器,即标题,段落,强调等.我不知道有任何实现,但这对你自己来说是微不足道的.这可能或可能不足以满足您的目的.

如果您的文档包含角色,指令或替换,则无法完成ReST-to-ReST转换.但是,您可以通过首先取消注册所有角色和指令来排序作弊,然后注册捕获所有角色和指令的函数,并在文档树中保留它们.基于这样的树,您可以恢复源(或至少接近这个).然而,替换会丢失,因为这些替换在解析的早期阶段应用,并且不会出现在结果树中.

标签:python,restructuredtext,docutils
来源: https://codeday.me/bug/20190520/1143933.html