Python sphinx 转义索引指令中的特殊字符

Python sphinx 转义索引指令中的特殊字符,python-sphinx,restructuredtext,Python Sphinx,Restructuredtext,我正在使用Sphinx为Prolog系统实现生成文档。Prolog语言包括连接和分离控制结构,分别由复合术语(',')/2和(;)/2表示 但由于存在逗号和分号,以下索引指令无法生成正确的条目: 。。索引::(',')/2 .. 索引::(;)/2 到目前为止,我还无法找到角色转义的解决方案。我对Prolog也有同样的问题/0控件构造,但我通过编写以下内容找到了解决方法: 。。索引::/0 试图使用反斜杠无效。是否支持转义我丢失的指令中的特殊字符?有没有其他解决方案可以使用('、')/2、(

我正在使用Sphinx为Prolog系统实现生成文档。Prolog语言包括连接和分离控制结构,分别由复合术语
(',')/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:谢谢您的帮助你的反馈。