我已经为我的一个文档项目创建了一个自定义指令,该项目使用sphinx和restructuredtext构建。指令的用法如下:
.. xpath-try:: //xpath[@expression="here"]
这将把xpath表达式呈现为一个简单的代码块,但是添加了一个链接,用户可以单击该链接对示例xml文档执行表达式并查看匹配项(
example link
,示例
rendered page
)
我的指令指定它没有内容,接受一个强制参数(xpath表达式)并识别两个选项:
class XPathTryDirective(Directive):
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
option_spec = {
'filename': directives.unchanged,
'ns_args': directives.unchanged,
}
def run(self):
xpath_expr = self.arguments[0]
node = xpath_try(xpath_expr, xpath_expr)
...
return [node]
一切
似乎
如果xpath表达式包含
*
然后我的编辑器(gvim)中的语法高亮显示就变得一团糟。如果我逃离
*
加上反斜杠,我的编辑器会很高兴,但是反斜杠会出现在输出中。
我的问题是:
-
指令的参数中的特殊字符应该被转义吗?
-
如果是的话,指令api是否提供了一种获取未转换版本的方法?
-
或者它工作正常,唯一的问题是我的编辑没有正确地突出显示内容?
这似乎是一个小问题,但作为一个新手,我觉得突出显示是非常有帮助的。