| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -11,11 +11,11 @@ | |||
| 11 | 11 | ||
| 12 | 12 | #RELEASE remove | |
| 13 | 13 | from src import html5parser, liberalxmlparser | |
| 14 | - from src import treebuilders | ||
| 14 | + from src import treebuilders, serializer, treewalkers | ||
| 15 | 15 | #END RELEASE | |
| 16 | 16 | #RELEASE add | |
| 17 | 17 | #from html5lib import html5parser, liberalxmlparser | |
| 18 | - #from html5lib import treebuilders | ||
| 18 | + #from html5lib import treebuilders, serializer, treewalkers | ||
| 19 | 19 | #END RELEASE | |
| 20 | 20 | ||
| 21 | 21 | def convertTreeDump(treedump): | |
@@ -51,16 +51,7 @@ def parse(): | |||
| 51 | 51 | sys.stderr.write("No filename provided. Use -h for help\n") | |
| 52 | 52 | sys.exit(1) | |
| 53 | 53 | ||
| 54 | - if opts.treebuilder is not None: | ||
| 55 | - try: | ||
| 56 | - treebuilder = eval("treebuilders." + opts.treebuilder).TreeBuilder | ||
| 57 | - except ImportError, name: | ||
| 58 | - sys.stderr.write("Treebuilder %s not found\n"%name) | ||
| 59 | - raise | ||
| 60 | - except Exception, foo: | ||
| 61 | - treebuilder = treebuilders.simpletree.TreeBuilder | ||
| 62 | - else: | ||
| 63 | - treebuilder = treebuilders.simpletree.TreeBuilder | ||
| 54 | + treebuilder = treebuilders.getTreeBuilder(opts.treebuilder) | ||
| 64 | 55 | ||
| 65 | 56 | if opts.xml: | |
| 66 | 57 | p = liberalxmlparser.XHTMLParser(tree=treebuilder) | |
@@ -96,6 +87,10 @@ def printOutput(parser, document, opts): | |||
| 96 | 87 | if not opts.no_tree: | |
| 97 | 88 | if opts.xml: | |
| 98 | 89 | sys.stdout.write(document.toxml("utf-8")) | |
| 90 | + elif opts.html: | ||
| 91 | + tokens = treewalkers.getTreeWalker(opts.treebuilder)(document) | ||
| 92 | + for text in serializer.HTMLSerializer().serialize(tokens): | ||
| 93 | + sys.stdout.write(text.encode('utf-8')) | ||
| 99 | 94 | elif opts.hilite: | |
| 100 | 95 | sys.stdout.write(document.hilite("utf-8")) | |
| 101 | 96 | else: | |
@@ -121,14 +116,17 @@ def getOptParser(): | |||
| 121 | 116 | dest="no_tree", help="Do not print output tree") | |
| 122 | 117 | ||
| 123 | 118 | parser.add_option("-b", "--treebuilder", action="store", type="string", | |
| 124 | - dest="treebuilder") | ||
| 119 | + dest="treebuilder", default="simpleTree") | ||
| 125 | 120 | ||
| 126 | 121 | parser.add_option("-e", "--error", action="store_true", default=False, | |
| 127 | 122 | dest="error", help="Print a list of parse errors") | |
| 128 | 123 | ||
| 129 | 124 | parser.add_option("-x", "--xml", action="store_true", default=False, | |
| 130 | 125 | dest="xml", help="Output as xml") | |
| 131 | 126 | ||
| 127 | + parser.add_option("", "--html", action="store_true", default=False, | ||
| 128 | + dest="html", help="Output as html") | ||
| 129 | + | ||
| 132 | 130 | parser.add_option("", "--hilite", action="store_true", default=False, | |
| 133 | 131 | dest="hilite", help="Output as formatted highlighted code.") | |
| 134 | 132 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -249,6 +249,7 @@ def __init__(self, **kwargs): | |||
| 249 | 249 | if attr in kwargs: | |
| 250 | 250 | setattr(self, attr, kwargs[attr]) | |
| 251 | 251 | self.errors = [] | |
| 252 | + self.strict = False | ||
| 252 | 253 | ||
| 253 | 254 | def serialize(self, treewalker, encoding=None): | |
| 254 | 255 | in_cdata = False | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -95,7 +95,7 @@ def getNextSibling(self, node): | |||
| 95 | 95 | def getParentNode(self, node): | |
| 96 | 96 | raise NotImplementedError | |
| 97 | 97 | ||
| 98 | - def walk(self): | ||
| 98 | + def __iter__(self): | ||
| 99 | 99 | currentNode = self.tree | |
| 100 | 100 | while currentNode is not None: | |
| 101 | 101 | details = self.getNodeDetails(currentNode) | |
| Back | FazBrowse Home | New Git URL |
0 commit comments