diff options
Diffstat (limited to 'Doc/tools')
-rwxr-xr-x | Doc/tools/sgmlconv/docfixer.py | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/Doc/tools/sgmlconv/docfixer.py b/Doc/tools/sgmlconv/docfixer.py index 68fd4a3..589ecea 100755 --- a/Doc/tools/sgmlconv/docfixer.py +++ b/Doc/tools/sgmlconv/docfixer.py @@ -155,8 +155,10 @@ def rewrite_descriptor(doc, descriptor): # 2. Create a <signature> from the name attribute and <args>. # 3. Create additional <signature>s from <*line{,ni}> elements, # if found. - # 4. Move remaining child nodes to a <description> element. - # 5. Put it back together. + # 4. If a <versionadded> is found, move it to an attribute on the + # descriptor. + # 5. Move remaining child nodes to a <description> element. + # 6. Put it back together. # descname = descriptor.tagName index = 1 @@ -200,16 +202,21 @@ def rewrite_descriptor(doc, descriptor): signature.appendChild(doc.createTextNode("\n ")) signature.appendChild(args) signature.appendChild(doc.createTextNode("\n ")) - # 3. + # 3, 4. pos = skip_leading_nodes(children, pos + 1) while pos < len(children) \ and children[pos].nodeType == xml.dom.core.ELEMENT \ - and children[pos].tagName == linename: - # this is really a supplemental signature, create <signature> - sig = methodline_to_signature(doc, children[pos]) - newchildren.append(sig) + and children[pos].tagName in (linename, "versionadded"): + if children[pos].tagName == linename: + # this is really a supplemental signature, create <signature> + sig = methodline_to_signature(doc, children[pos]) + newchildren.append(sig) + else: + # <versionadded added=...> + descriptor.setAttribute( + "added", children[pos].getAttribute("version")) pos = skip_leading_nodes(children, pos + 1) - # 4. + # 5. description = doc.createElement("description") description.appendChild(doc.createTextNode("\n")) newchildren.append(description) @@ -217,7 +224,7 @@ def rewrite_descriptor(doc, descriptor): last = description.childNodes[-1] if last.nodeType == xml.dom.core.TEXT: last.data = string.rstrip(last.data) + "\n " - # 5. + # 6. # should have nothing but whitespace and signature lines in <descriptor>; # discard them while descriptor.childNodes: @@ -408,6 +415,9 @@ def create_module_info(doc, section): typenode = doc.createElement("type") typenode.appendChild(doc.createTextNode(type)) modinfo.appendChild(typenode) + versionadded = extract_first_element(section, "versionadded") + if versionadded: + modinfo.setAttribute("added", versionadded.getAttribute("version")) title = get_first_element(section, "title") if title: children = title.childNodes |