[Zope-Checkins] CVS: Zope/lib/python/StructuredText -
HTMLClass.py:1.23
Paul Winkler
pw_lists at slinkp.com
Tue Mar 23 13:29:27 EST 2004
Update of /cvs-repository/Zope/lib/python/StructuredText
In directory cvs.zope.org:/tmp/cvs-serv4250
Modified Files:
HTMLClass.py
Log Message:
refactoring: many methods contained duplicated code from dispatch().
also broke dispatch up into multiple lines for easier reading/debugging.
=== Zope/lib/python/StructuredText/HTMLClass.py 1.22 => 1.23 ===
--- Zope/lib/python/StructuredText/HTMLClass.py:1.22 Wed Aug 14 17:58:22 2002
+++ Zope/lib/python/StructuredText/HTMLClass.py Tue Mar 23 13:29:26 2004
@@ -42,7 +42,10 @@
def dispatch(self, doc, level, output):
- getattr(self, self.element_types[doc.getNodeName()])(doc, level, output)
+ node_name = doc.getNodeName()
+ element_type = self.element_types[node_name]
+ element_method = getattr(self, element_type)
+ element_method(doc, level, output)
def __call__(self, doc, level=1, header=1):
r=[]
@@ -55,7 +58,7 @@
def document(self, doc, level, output):
children=doc.getChildNodes()
-
+
if self.header:
output('<html>\n')
if (children and
@@ -65,7 +68,7 @@
output('<body>\n')
for c in children:
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
if self.header:
output('</body>\n')
@@ -74,12 +77,13 @@
def section(self, doc, level, output):
children=doc.getChildNodes()
for c in children:
- getattr(self, self.element_types[c.getNodeName()])(c, level+1, output)
+ self.dispatch(c, level+1, output)
def sectionTitle(self, doc, level, output):
output('<h%d>' % (level))
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
+
output('</h%d>\n' % (level))
def description(self, doc, level, output):
@@ -87,7 +91,7 @@
if p is None or p.getNodeName() is not doc.getNodeName():
output('<dl>\n')
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
n=doc.getNextSibling()
if n is None or n.getNodeName() is not doc.getNodeName():
output('</dl>\n')
@@ -95,13 +99,13 @@
def descriptionTitle(self, doc, level, output):
output('<dt>')
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
output('</dt>\n')
def descriptionBody(self, doc, level, output):
output('<dd>')
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
output('</dd>\n')
def bullet(self, doc, level, output):
@@ -110,7 +114,7 @@
output('\n<ul>\n')
output('<li>')
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
n=doc.getNextSibling()
output('</li>\n')
if n is None or n.getNodeName() is not doc.getNodeName():
@@ -122,7 +126,7 @@
output('\n<ol>\n')
output('<li>')
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
n=doc.getNextSibling()
output('</li>\n')
if n is None or n.getNodeName() is not doc.getNodeName():
@@ -136,31 +140,28 @@
output(escape(c.getNodeValue()))
output('\n</pre>\n')
else:
- getattr(self, self.element_types[c.getNodeName()])(
- c, level, output)
+ self.dispatch(c, level, output)
def paragraph(self, doc, level, output):
output('<p>')
for c in doc.getChildNodes():
if c.getNodeName() in ['StructuredTextParagraph']:
- getattr(self, self.element_types[c.getNodeName()])(
- c, level, output)
+ self.dispatch(c, level, output)
else:
- getattr(self, self.element_types[c.getNodeName()])(
- c, level, output)
+ self.dispatch(c, level, output)
output('</p>\n')
def link(self, doc, level, output):
output('<a href="%s">' % doc.href)
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
output('</a>')
def emphasis(self, doc, level, output):
output('<em>')
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
output('</em>')
def literal(self, doc, level, output):
@@ -172,36 +173,36 @@
def strong(self, doc, level, output):
output('<strong>')
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
output('</strong>')
def underline(self, doc, level, output):
output("<u>")
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
output("</u>")
def innerLink(self, doc, level, output):
output('<a href="#ref');
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
output('">[')
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
output(']</a>')
def namedLink(self, doc, level, output):
output('<a name="ref')
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
output('">[')
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
output(']</a>')
def sgml(self,doc,level,output):
for c in doc.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
def xref(self, doc, level, output):
val = doc.getNodeValue()
@@ -227,7 +228,7 @@
str = '<td colspan="%s">' % column.getSpan()
output(str)
for c in column.getChildNodes():
- getattr(self, self.element_types[c.getNodeName()])(c, level, output)
+ self.dispatch(c, level, output)
if hasattr(column,"getType"):
output("</"+column.getType()+">\n")
else:
More information about the Zope-Checkins
mailing list