| Index: ppapi/c/documentation/html2ezt.py
|
| diff --git a/ppapi/c/documentation/html2ezt.py b/ppapi/c/documentation/html2ezt.py
|
| deleted file mode 100755
|
| index bb7ca25b83aec730d7ac205cbcd3db2c8e0e1c48..0000000000000000000000000000000000000000
|
| --- a/ppapi/c/documentation/html2ezt.py
|
| +++ /dev/null
|
| @@ -1,135 +0,0 @@
|
| -#!/usr/bin/python
|
| -
|
| -# Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -'''This utility converts the html files as emitted by doxygen into ezt files
|
| -that are suitable for inclusion into Google code site.
|
| -
|
| -EZT stands for "EaZy Templating (for Python)". For more information, see
|
| -http://code.google.com/p/ezt/
|
| -'''
|
| -
|
| -import optparse
|
| -import os
|
| -import re
|
| -import shutil
|
| -import string
|
| -import sys
|
| -try:
|
| - from BeautifulSoup import BeautifulSoup, Tag
|
| -except (ImportError, NotImplementedError):
|
| - print ("This tool requires the BeautifulSoup package "
|
| - "(see http://www.crummy.com/software/BeautifulSoup/).\n"
|
| - "Make sure that the file BeautifulSoup.py is either in this directory "
|
| - "or is available in your PYTHON_PATH")
|
| - raise
|
| -
|
| -
|
| -class EZTFixer(object):
|
| - '''This class converts the html strings as produced by Doxygen into ezt
|
| - strings as used by the Google code site tools
|
| - '''
|
| -
|
| - def __init__(self, html):
|
| - self.soup = BeautifulSoup(html)
|
| -
|
| - def FixTableHeadings(self):
|
| - '''Fixes the doxygen table headings to EZT's liking.
|
| -
|
| - This includes using <th> instead of <h2> for the heading, and putting
|
| - the "name" attribute into the "id" attribute of the <tr> tag.
|
| -
|
| - For example, this html:
|
| - <tr><td colspan="2"><h2><a name="pub-attribs"></a>
|
| - Data Fields List</h2></td></tr>
|
| -
|
| - 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.
|
| - '''
|
| -
|
| - 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'
|
| - 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:
|
| - # Is this a heading in the middle of a table?
|
| - if tag.findPreviousSibling('tr') and tag.parent.name == 'table':
|
| - 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:]
|
| -
|
| - def RemoveTopHeadings(self):
|
| - '''Removes <div> sections with a header, tabs, or navpath class attribute'''
|
| - header_tags = self.soup.findAll(
|
| - name='div',
|
| - attrs={'class' : re.compile('^(header|tabs[0-9]*|navpath)$')})
|
| - [tag.extract() for tag in header_tags]
|
| -
|
| - def FixAll(self):
|
| - self.FixTableHeadings()
|
| - self.RemoveTopHeadings()
|
| -
|
| - def __str__(self):
|
| - return str(self.soup)
|
| -
|
| -
|
| -def main():
|
| - '''Main entry for the html2ezt utility
|
| -
|
| - html2ezt takes a list of html files and creates a set of ezt files with
|
| - the same basename and in the same directory as the original html files.
|
| - Each new ezt file contains a file that is suitable for presentation
|
| - on Google Codesite using the EZT tool.'''
|
| -
|
| - parser = optparse.OptionParser(usage='Usage: %prog [options] files...')
|
| -
|
| - parser.add_option('-m', '--move', dest='move', action='store_true',
|
| - default=False, help='move html files to "original_html"')
|
| -
|
| - options, files = parser.parse_args()
|
| -
|
| - if not files:
|
| - parser.print_usage()
|
| - return 1
|
| -
|
| - for filename in files:
|
| - try:
|
| - with open(filename, 'r') as file:
|
| - html = file.read()
|
| -
|
| - fixer = EZTFixer(html)
|
| - fixer.FixAll()
|
| - new_name = re.sub(re.compile('\.html$'), '.ezt', filename)
|
| - with open(new_name, 'w') as file:
|
| - file.write(str(fixer))
|
| - if options.move:
|
| - new_directory = os.path.join(
|
| - os.path.dirname(os.path.dirname(filename)), 'original_html')
|
| - if not os.path.exists(new_directory):
|
| - os.mkdir(new_directory)
|
| - shutil.move(filename, new_directory)
|
| - except:
|
| - print "Error while processing %s" % filename
|
| - raise
|
| -
|
| - return 0
|
| -
|
| -if __name__ == '__main__':
|
| - sys.exit(main())
|
|
|