Skip to content

Commit

Permalink
Optionally produce html as output
Browse files Browse the repository at this point in the history
--HG--
extra : convert_revision : svn%3Aacbfec75-9323-0410-a652-858a13e371e0/trunk%40658
  • Loading branch information
rubys committed Jun 3, 2007
1 parent c98097f commit d2a2a36
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 14 deletions.
24 changes: 11 additions & 13 deletions parse.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@

#RELEASE remove
from src import html5parser, liberalxmlparser
from src import treebuilders
from src import treebuilders, serializer, treewalkers
#END RELEASE
#RELEASE add
#from html5lib import html5parser, liberalxmlparser
#from html5lib import treebuilders
#from html5lib import treebuilders, serializer, treewalkers
#END RELEASE

def convertTreeDump(treedump):
Expand Down Expand Up @@ -51,16 +51,7 @@ def parse():
sys.stderr.write("No filename provided. Use -h for help\n")
sys.exit(1)

if opts.treebuilder is not None:
try:
treebuilder = eval("treebuilders." + opts.treebuilder).TreeBuilder
except ImportError, name:
sys.stderr.write("Treebuilder %s not found\n"%name)
raise
except Exception, foo:
treebuilder = treebuilders.simpletree.TreeBuilder
else:
treebuilder = treebuilders.simpletree.TreeBuilder
treebuilder = treebuilders.getTreeBuilder(opts.treebuilder)

if opts.xml:
p = liberalxmlparser.XHTMLParser(tree=treebuilder)
Expand Down Expand Up @@ -96,6 +87,10 @@ def printOutput(parser, document, opts):
if not opts.no_tree:
if opts.xml:
sys.stdout.write(document.toxml("utf-8"))
elif opts.html:
tokens = treewalkers.getTreeWalker(opts.treebuilder)(document)
for text in serializer.HTMLSerializer().serialize(tokens):
sys.stdout.write(text.encode('utf-8'))
elif opts.hilite:
sys.stdout.write(document.hilite("utf-8"))
else:
Expand All @@ -121,14 +116,17 @@ def getOptParser():
dest="no_tree", help="Do not print output tree")

parser.add_option("-b", "--treebuilder", action="store", type="string",
dest="treebuilder")
dest="treebuilder", default="simpleTree")

parser.add_option("-e", "--error", action="store_true", default=False,
dest="error", help="Print a list of parse errors")

parser.add_option("-x", "--xml", action="store_true", default=False,
dest="xml", help="Output as xml")

parser.add_option("", "--html", action="store_true", default=False,
dest="html", help="Output as html")

parser.add_option("", "--hilite", action="store_true", default=False,
dest="hilite", help="Output as formatted highlighted code.")

Expand Down
1 change: 1 addition & 0 deletions src/serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,7 @@ def __init__(self, **kwargs):
if attr in kwargs:
setattr(self, attr, kwargs[attr])
self.errors = []
self.strict = False

def serialize(self, treewalker, encoding=None):
in_cdata = False
Expand Down
2 changes: 1 addition & 1 deletion src/treewalkers/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ def getNextSibling(self, node):
def getParentNode(self, node):
raise NotImplementedError

def walk(self):
def __iter__(self):
currentNode = self.tree
while currentNode is not None:
details = self.getNodeDetails(currentNode)
Expand Down

0 comments on commit d2a2a36

Please sign in to comment.