1
0
forked from boostorg/mpl

Further MPL doc generation fixes

[SVN r53747]
This commit is contained in:
Aleksey Gurtovoy
2009-06-08 13:12:50 +00:00
parent e1c57fa777
commit 78364897a1

View File

@@ -21,47 +21,9 @@ class Writer(html4_frames.Writer):
self.translator = refdoc_translator
class hacked_html_translator(nodes.NodeVisitor):
def __init__(self, document):
self.__super = nodes.NodeVisitor
self.__super.__init__(self, document)
self.base = html4css1.HTMLTranslator(document)
self.body = self.base.body
self.head = self.base.head
self.astext = self.base.astext
self.starttag = self.base.starttag
self.words_and_spaces = self.base.words_and_spaces
self.encode = self.base.encode
self.recursion_level = 0
def visit_section(self, node):
if self.base.section_level == 1:
self.base.section_level = 2
self.base.body_prefix = self.body_prefix
self.base.visit_section(node)
def depart_section(self, node):
self.base.depart_section(node)
if self.base.section_level == 2:
self.base.section_level = 1
def visit_generated(self, node):
if node.get('class', '') == 'sectnum':
node[0].data = string.strip(node[0].data, u'\u00a0')
self.base.visit_generated(node)
def depart_generated(self, node):
self.base.depart_generated(node)
class refdoc_translator(html4_frames.frame_pages_translator):
tocframe_width = 25
page_translator = hacked_html_translator
re_include = re.compile(r'(\s*#include\s+<)(.*?\.hpp)?(>\s*)?')
re_identifier = re.compile(r'(.*?\W*)(\w+)(\W.*?)?')
re_modtime = re.compile(r'\s*modtime:\s*(.*)')
@@ -75,6 +37,20 @@ class refdoc_translator(html4_frames.frame_pages_translator):
self.__super.__init__(self, document, index_page, page_files_dir, extension)
def visit_section( self, node ):
base = self
self = self.active_visitor()
if self.section_level == 1:
self.section_level = 2
base.__super.visit_section( base, node )
def depart_section( self, node ):
self.__super.depart_section( self, node )
self = self.active_visitor()
if self.section_level == 2:
self.section_level = 1
def visit_title( self, node ):
self.__super.visit_title( self, node )
if self.re_auto_id.match( self._node_id( node.parent ) ):
@@ -249,22 +225,3 @@ class refdoc_translator(html4_frames.frame_pages_translator):
return node_id
def _setup_forwarding(visitor):
for name in nodes.node_class_names:
if not getattr(visitor, 'visit_' + name, None):
def forward_visit(self, node, name=name):
self.recursion_level += 1
#print '%svisit_%s' % ( '+' * self.recursion_level, name )
getattr(self.base, 'visit_' + name)(node)
def forward_depart(self, node, name=name):
#print '%sdepart_%s' % ( '-' * self.recursion_level, name )
self.recursion_level -= 1
getattr(self.base, 'depart_' + name)(node)
setattr(visitor, 'visit_' + name, forward_visit)
setattr(visitor, 'depart_' + name, forward_depart)
_setup_forwarding(hacked_html_translator)