Python sphinx 是否应转义自定义指令的参数?

Python sphinx 是否应转义自定义指令的参数?,python-sphinx,restructuredtext,Python Sphinx,Restructuredtext,我已经为我的一个文档项目创建了一个自定义指令,该项目是使用Sphinx和reStructuredText构建的。该指令的使用方式如下: .. xpath-try:: //xpath[@expression="here"] 这将把XPath表达式呈现为一个简单的代码块,但添加了一个链接,用户可以单击该链接对示例XML文档执行表达式并查看匹配项(,示例) My指令指定它没有内容,接受一个强制参数(xpath表达式),并识别两个选项: XPathTryDirective类(指令): has_cont

我已经为我的一个文档项目创建了一个自定义指令,该项目是使用Sphinx和reStructuredText构建的。该指令的使用方式如下:

.. xpath-try:: //xpath[@expression="here"]
这将把XPath表达式呈现为一个简单的代码块,但添加了一个链接,用户可以单击该链接对示例XML文档执行表达式并查看匹配项(,示例)

My指令指定它没有内容,接受一个强制参数(xpath表达式),并识别两个选项:

XPathTryDirective类(指令):
has_content=False
必需的参数=1
可选参数=0
最后一个参数\u空格=真
选项_规格={
“文件名”:指令未更改,
“ns_args”:指令未更改,
}
def运行(自):
xpath_expr=self.arguments[0]
node=xpath\u try(xpath\u expr,xpath\u expr)
...
返回[节点]
一切似乎都完全按照预期工作,只是如果XPath表达式包含
*
,那么我的编辑器(gVim)中的语法突出显示就会变得非常混乱。如果我用反斜杠转义
*
,那么我的编辑器会很高兴,但反斜杠会在输出中出现

我的问题是:

  • 指令参数中的特殊字符应该转义吗
  • 如果是这样的话,指令API是否提供了一种获取未转载版本的方法
  • 或者它工作正常,唯一的问题是我的编辑器没有正确地突出显示内容
  • 这似乎是一个小问题,但由于我是新手,我发现突出显示非常有帮助

    指令参数中的特殊字符应该转义吗

    不,我认为没有对rst指令的参数执行额外的处理。与您的观察结果相匹配:无论您指定什么作为指令的参数,都可以通过
    self.arguments[0]
    直接获取

    或者它工作正常,唯一的问题是我的编辑器没有正确地突出显示内容

    是的,似乎是这样。字符
    *
    在rst中用于强调/斜体,由于某些原因,在语法突出显示期间,它会得到更多的注意


    这意味着这里的解决方案是调整或修复重构文本的vim语法文件。

    谢谢您的回答。最后我得出了同样的结论。然而,从实用的角度来看,我还得出结论,我需要指定扩展的使用预期,因此我假设参数中的反斜杠用于转义。