Index: ppapi/c/documentation/doxy_cleanup.py |
diff --git a/ppapi/c/documentation/doxy_cleanup.py b/ppapi/c/documentation/doxy_cleanup.py |
index 4e5bba40a90d164966f1a87a8f3e3b2f6e42d846..01b1ca07d4e72d00eae19d4f5a161123b346501d 100755 |
--- a/ppapi/c/documentation/doxy_cleanup.py |
+++ b/ppapi/c/documentation/doxy_cleanup.py |
@@ -34,42 +34,56 @@ class HTMLFixer(object): |
def FixTableHeadings(self): |
'''Fixes the doxygen table headings. |
- This includes using <th> instead of <h2> for the heading, and putting |
- the "name" attribute into the "id" attribute of the <tr> tag. |
+ This includes: |
+ - Using bare <h2> title row instead of row embedded in <tr><td> in table |
+ - Putting the "name" attribute into the "id" attribute of the <tr> tag. |
+ - Splitting up tables into multiple separate tables if a table |
+ heading appears in the middle of a table. |
For example, this html: |
+ <table> |
<tr><td colspan="2"><h2><a name="pub-attribs"></a> |
Data Fields List</h2></td></tr> |
+ ... |
+ </table> |
would be converted to this: |
- <tr id="pub-attribs"><th colspan="2">Data Fields List</th></tr> |
- |
- Also, this function splits up tables into multiple separate tables if |
- a table heading appears in the middle of a table. |
+ <h2>Data Fields List</h2> |
+ <table> |
+ ... |
+ </table> |
''' |
table_headers = [] |
for tag in self.soup.findAll('tr'): |
if tag.td and tag.td.h2 and tag.td.h2.a and tag.td.h2.a['name']: |
- tag['id'] = tag.td.h2.a['name'] |
- tag.td.string = tag.td.h2.a.next |
- tag.td.name = 'th' |
+ #tag['id'] = tag.td.h2.a['name'] |
+ tag.string = tag.td.h2.a.next |
+ tag.name = 'h2' |
table_headers.append(tag) |
# reverse the list so that earlier tags don't delete later tags |
table_headers.reverse() |
# Split up tables that have multiple table header (th) rows |
for tag in table_headers: |
+ print "Header tag: %s is %s" % (tag.name, tag.string.strip()) |
# Is this a heading in the middle of a table? |
if tag.findPreviousSibling('tr') and tag.parent.name == 'table': |
+ print "Splitting Table named %s" % tag.string.strip() |
table = tag.parent |
table_parent = table.parent |
table_index = table_parent.contents.index(table) |
new_table = Tag(self.soup, name='table', attrs=table.attrs) |
table_parent.insert(table_index + 1, new_table) |
tag_index = table.contents.index(tag) |
- new_table.contents = table.contents[tag_index:] |
- del table.contents[tag_index:] |
+ for index, row in enumerate(table.contents[tag_index:]): |
+ new_table.insert(index, row) |
+ # Now move the <h2> tag to be in front of the <table> tag |
+ assert tag.parent.name == 'table' |
+ table = tag.parent |
+ table_parent = table.parent |
+ table_index = table_parent.contents.index(table) |
+ table_parent.insert(table_index, tag) |
def RemoveTopHeadings(self): |
'''Removes <div> sections with a header, tabs, or navpath class attribute''' |
@@ -107,6 +121,7 @@ def main(): |
with open(filename, 'r') as file: |
html = file.read() |
+ print "Processing %s" % filename |
fixer = HTMLFixer(html) |
fixer.FixAll() |
with open(filename, 'w') as file: |