有作家休息吗?

2024-09-26 17:43:56 发布

您现在位置:Python中文网/ 问答频道 /正文

对于docutil.nodes树,是否存在一个reST Writer?我找不到,但也许我遗漏了一些明显的东西。或者你自己写一个是很琐碎的吗?我想实现reST到reST的转换。在


Tags: restwriternodesdocutil遗漏
1条回答
网友
1楼 · 发布于 2024-09-26 17:43:56

没有,而且很难,如果不是不可能的话,除了普通的ReST标记之外实现一个。在

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

一个真实的例子是来自Sphinx的各种指令,例如py:class。这些指令将pending_xref节点插入到文档树中,这些节点将在稍后的时间点解析为实际的交叉引用。{2>因此没有一个直接对应于ReST的节点的指令。在

可以为简单的标准ReST标记实现writer,即标题、段落、强调等等。我不知道有什么实现,但这对你自己来说是微不足道的。这对你的目的来说可能不够。在

如果文档包含角色、指令或替换,则不可能完成ReST到ReST的转换。但是,您可以先注销所有角色和指令,然后注册一个函数,该函数捕获所有角色和指令,并将它们按字面形式保存在文档树中,从而达到作弊的目的。基于这样的树,您可以恢复源代码(或者至少接近这个树)。但是替换会丢失,因为这些替换是在解析的早期阶段应用的,并且不会出现在结果树中。在

相关问题 更多 >

    热门问题