def doctree_resolved(app, doctree, docname):
secnums = app.builder.env.toc_secnumbers
for node in doctree.traverse(nodes.reference):
if 'refdocname' in node:
refdocname = node['refdocname']
if refdocname in secnums:
secnum = secnums[refdocname]
toclist = app.builder.env.tocs[refdocname]
for child in node.traverse():
if isinstance(child, nodes.Text):
text = child.astext()
anchorname = None
for refnode in toclist.traverse(nodes.reference):
if refnode.astext() == text:
anchorname = refnode['anchorname']
if anchorname is None:
continue
linktext = '.'.join(map(str, secnum[anchorname]))
child.parent.replace(child, nodes.Text(linktext))
评论列表
文章目录