Python sphinx 如何配置用于:menuselection:的分隔符?

Python sphinx 如何配置用于:menuselection:的分隔符?,python-sphinx,restructuredtext,Python Sphinx,Restructuredtext,我正在使用Sphinx为我的项目生成HTML文档。在“内联标记”下,Sphinx文档讨论了如何使用以下标记标记一系列菜单选择: :menuselection:`Start --> Programs` 这将生成以下HTML: <span class="menuselection">Start ‣ Programs</span> 启动程序 i、 e.-->被转换成小三角形,我确定为U+2023,三角形子弹 这很好,但是我想用一个不同的字符而不是三角形。我在Sphi

我正在使用Sphinx为我的项目生成HTML文档。在“内联标记”下,Sphinx文档讨论了如何使用以下标记标记一系列菜单选择:

:menuselection:`Start --> Programs`
这将生成以下HTML:

<span class="menuselection">Start ‣ Programs</span>
启动程序
i、 e.
-->
被转换成小三角形,我确定为U+2023,三角形子弹

这很好,但是我想用一个不同的字符而不是三角形。我在Sphinx软件包和theme软件包(Sphinx引导主题)中搜索了“menuselection”、三角形字符和其他一些内容,但没有找到任何可以将
-->
替换为
-
的内容(无论如何,对我来说没有什么明显的)。但是一定有什么东西在我的.rst源代码和html之间转换它


我的问题是:具体是什么在进行转换(sphinx core?HTML writer?Theme JS?)

转换在
sphinx.roles.menusel\u role()函数中完成。您可以使用不同的分隔符创建自己版本的此函数,并将其注册以供使用

将以下内容添加到项目的conf.py中:

来自docutils导入节点,utils
从docutils.parsers.rst导入角色
从sphinx.roles导入
def修补的菜单角色(类型、rawtext、text、lineno、inliner、options={}、content=[]):
text=utils.unescape(text)
如果typ==“menuselection”:
text=text.replace('-->',u'\N{向右箭头}')#这是补丁
跨度=_amp_re.split(文本)
node=nodes.emphasis(rawtext=rawtext)
对于i,枚举中的跨度(跨度):
span=span.replace('&&','&'))
如果i==0:
如果len(span)>0:
Text节点=节点。Text(span)
节点+=文本节点
持续
accel_node=nodes.inline()
字母\节点=节点。文本(跨度[0])
加速节点+=字母节点
加速节点['classes'].append('accelerator')
节点+=加速节点
textnode=nodes.Text(span[1:])
节点+=文本节点
节点['classes'].append(典型)
返回[节点],]
#使用“补丁菜单选择”功能处理“菜单选择”角色
角色。注册本地角色(“菜单选择”,补丁菜单角色)
在构建html时,请确保首先清理
make clean
,以便使用补丁重新解析更新的conf.py