gpt4 book ai didi

python - 在 reST 中指定 anchor 名称

转载 作者:太空狗 更新时间:2023-10-29 18:06:41 24 4
gpt4 key购买 nike

我正在使用 docutils 附带的 rst2html 工具从 reST 创建 HTML。代码似乎已经为各个部分分配了 id 属性,这些属性可以用作 URL 中的片段标识符,即作为跳转到页面特定部分的 anchor 。这些 id 值基于部分标题的文本。当我更改该标题的措辞时,标识符也会更改,从而使旧 URL 无效。

有没有一种方法可以指定用作给定部分标识符的名称,以便我可以在不使链接失效的情况下编辑标题?如果我通过自己的脚本自己调用 docutils 发布者,是否有办法?

最佳答案

我认为您不能在 reST 部分中设置显式 ID,但我可能弄错了。

如果您更喜欢编号的 id,这将取决于文档树中各部分的顺序,而不是它们的标题,您可以通过对 docutils/nodes 中的 document.set_id() 方法进行小的更改来实现.py(在我的版本的第 997 行。)

这是补丁:

 def set_id(self, node, msgnode=None):
for id in node['ids']:
if id in self.ids and self.ids[id] is not node:
msg = self.reporter.severe('Duplicate ID: "%s".' % id)
if msgnode != None:
msgnode += msg
if not node['ids']:
- for name in node['names']:
- id = self.settings.id_prefix + make_id(name)
- if id and id not in self.ids:
- break
- else:
+ if True: #forcing numeric ids
id = ''
while not id or id in self.ids:
id = (self.settings.id_prefix +
self.settings.auto_id_prefix + str(self.id_start))
self.id_start += 1
node['ids'].append(id)
self.ids[id] = node
return id

我刚刚对其进行了测试,它生成的部分 ID 为 id1、id2...

如果您不想更改这个系统范围的文件,您可以通过自定义 rst2html 命令对其进行猴子修补。

关于python - 在 reST 中指定 anchor 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13641592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com