mirror of https://github.com/python/cpython
handle_labels(): Fix problem for document fragments containing more
than one "root" that prevented all the <label id=...> items from being promoted to id attributes on the enclosing chapter/ section/... properly.
This commit is contained in:
parent
a7998f650a
commit
2664db9f76
|
@ -165,18 +165,20 @@ def handle_appendix(doc):
|
|||
|
||||
|
||||
def handle_labels(doc):
|
||||
labels = doc.getElementsByTagName("label")
|
||||
for label in labels:
|
||||
id = label.getAttribute("id")
|
||||
if not id:
|
||||
continue
|
||||
parent = label.parentNode
|
||||
if parent.tagName == "title":
|
||||
parent.parentNode.setAttribute("id", id)
|
||||
else:
|
||||
parent.setAttribute("id", id)
|
||||
# now, remove <label id="..."/> from parent:
|
||||
parent.removeChild(label)
|
||||
for node in doc.childNodes:
|
||||
if node.nodeType == xml.dom.core.ELEMENT:
|
||||
labels = node.getElementsByTagName("label")
|
||||
for label in labels:
|
||||
id = label.getAttribute("id")
|
||||
if not id:
|
||||
continue
|
||||
parent = label.parentNode
|
||||
if parent.tagName == "title":
|
||||
parent.parentNode.setAttribute("id", id)
|
||||
else:
|
||||
parent.setAttribute("id", id)
|
||||
# now, remove <label id="..."/> from parent:
|
||||
parent.removeChild(label)
|
||||
|
||||
|
||||
def fixup_trailing_whitespace(doc, wsmap):
|
||||
|
|
Loading…
Reference in New Issue