RST Sphinx xml 自定义扩展

问题描述 投票:0回答:1

我试图了解如何创建自定义 Sphinx 扩展,该扩展只能在创建 XML 时执行。我想添加一个自定义 RST 指令

.. mycustom:: 

并输出后续的 XML 标签

<mycustom></mycustom>

我正在调用

nodes.raw()
函数,但它向我的自定义标签添加了一个信封
<raw></raw>
标签,我无法删除该标签。我从网站上可以找到的示例 HelloWorld 指令帮助开始,对其进行了一些细微的修改。

提前感谢谁能帮助我更好地理解。

xml python-sphinx restructuredtext
1个回答
0
投票

您可能在 Docutils XML 编写器中发现了一个错误。

nodes.raw
是实现 文档树元素的类:

原封不动地传递给作者。解释权在于作者。

大多数编写者(HTML,LaTeX,...)忽略“外来”格式的 元素,并将与其格式匹配的 元素的内容直接写入输出中。

“XML”编写器很特殊,因为它还存储“外部”元素(在内容中转义特殊字符)。 ` 的处理有点复杂:内容中的 XML 标记不会被转义,但包装器会被保留。

您可以考虑在后处理中摆脱

<raw> </raw>
包装器,在 https://sourceforge.net/p/docutils/bugs/ 提交错误报告,或使用 元素和转换或自定义编写器而不是

© www.soinside.com 2019 - 2024. All rights reserved.