Python sphinx 转义索引指令中的特殊字符
我正在使用Sphinx为Prolog系统实现生成文档。Prolog语言包括连接和分离控制结构,分别由复合术语Python sphinx 转义索引指令中的特殊字符,python-sphinx,restructuredtext,Python Sphinx,Restructuredtext,我正在使用Sphinx为Prolog系统实现生成文档。Prolog语言包括连接和分离控制结构,分别由复合术语(',')/2和(;)/2表示 但由于存在逗号和分号,以下索引指令无法生成正确的条目: 。。索引::(',')/2 .. 索引::(;)/2 到目前为止,我还无法找到角色转义的解决方案。我对Prolog也有同样的问题/0控件构造,但我通过编写以下内容找到了解决方法: 。。索引::/0 试图使用反斜杠无效。是否支持转义我丢失的指令中的特殊字符?有没有其他解决方案可以使用('、')/2、(
(',')/2
和(;)/2
表示
但由于存在逗号和分号,以下索引指令无法生成正确的条目:
。。索引::(',')/2
.. 索引::(;)/2
到目前为止,我还无法找到角色转义的解决方案。我对Prolog也有同样的问题/0
控件构造,但我通过编写以下内容找到了解决方法:
。。索引::/0
试图使用反斜杠无效。是否支持转义我丢失的指令中的特殊字符?有没有其他解决方案可以使用('、')/2
、(;)/2
、和/0
索引项?是一个专门的Sphinx指令,而不是一个
我认为这是一个Sphinx bug,请注意,如果不使用名称:
选项,仅使用分号的以下示例将中断:
.. index::
single: ;
name: aa
提供以下HTML:
使用名称:
选项的两个示例
.. index::
single: (',')/2
name: aaa
.. index::
single: !!/0
name: aaaaa
提供以下HTML:
但是现在如果我们使用
.. index::
single: (;)/2
name: a
它给出了以下HTML:
(
-
这可能是解析名称时的一个错误,没有理由为什么分号会导致在代码< > LI> < /COD> < < /P>中引入一个附加的<代码> UL> < /代码>对。 起初,人们倾向于指责名称中使用了符号,并试图对其进行转义。接下来,您会质疑分号本身是否允许,因为这些字段可能会在HTML中使用,因此会受到限制。查看docutils规范:
ID和名称标记必须以字母([a-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“)、冒号(:”)和句点(“.”) 但是,使用name:
和single:
选项解决了两种情况,其中一种是分号分隔的。name:
选项本身是最新的。查看允许的字符也经历了最近的更改。最后出现了一个可疑的类似sem伊科隆最近
旁注:
由于这是一个Prolog线程,我将提到“语法产品显示”可能会为您的文档提供一些使用指令和
:token:
角色的内容。我还没有看到它被使用。显然,它只需要复制一个。(','))/2
如果是使用单一:
条目类型给出的,那么它就可以工作。@mzjn谢谢你的建议。它对于(',')/2
和!/0
非常有效,但是对于(;)/2
。你能把你的评论移到一个答案上吗?PauloMoura我的意见:在github上发布一个bug报告(带有发布#8405的链接)。我认为#8405是不相关的。非常接近,除了latex builder而不是html builder。我个人认为这是一个错误。当您使用单个:
条目时,不需要为单个条目使用分隔符,因此不应解析;
。请向Sphinx提交错误报告。@StevePiercy Done:谢谢您的帮助你的反馈。