def getXHTML(wikitext, title, language): db = DummyDB() db.normalize_and_get_page = noop r = parseString(title=title, raw=wikitext, wikidb=db, lang=language) if not r: return None preprocess(r) removeLangLinks(r) dbw = MWXHTMLWriter() dbw.writeBook(r) return dbw.asstring()
def test_identity(): raw = """ <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> """.decode("utf8") db = DummyDB() r = parseString(title="X33", raw=raw, wikidb=db) buildAdvancedTree(r) _treesanity(r) brs = r.getChildNodesByClass(BreakingReturn) for i, br in enumerate(brs): assert br in br.siblings assert i == _idIndex(br.parent.children, br) assert len([x for x in br.parent.children if x is not br]) == len(brs) - 1 for bbr in brs: if br is bbr: continue assert br == bbr assert br is not bbr
def getAdvTree(fn): from mwlib.dummydb import DummyDB from mwlib.uparser import parseString db = DummyDB() input = unicode(open(fn).read(), 'utf8') r = parseString(title=fn, raw=input, wikidb=db) buildAdvancedTree(r) return r
def main(): from mwlib.dummydb import DummyDB import os import sys db = DummyDB() for x in sys.argv[1:]: input = unicode(open(x).read(), 'utf8') title = unicode(os.path.basename(x)) parseString(title, input, db)
def getXML(wikitext): db = DummyDB() r = parseString(title="test", raw=wikitext, wikidb=db) advtree.buildAdvancedTree(r) preprocess(r) mwlib.parser.show(sys.stdout, r) odfw = ODFWriter() odfw.writeTest(r) validate(odfw) xml = odfw.asstring() # print xml # usefull to inspect generateded xml return xml
def main(): for fn in sys.argv[1:]: from mwlib.dummydb import DummyDB from mwlib.uparser import parseString db = DummyDB() input = unicode(open(fn).read(), 'utf8') r = parseString(title=fn, raw=input, wikidb=db) parser.show(sys.stdout, r) preprocess(r) parser.show(sys.stdout, r) dbw = MWXHTMLWriter() dbw.writeBook(r) nf = open("%s.html" % fn, "w") nf.write(dbw.asstring())
def _parse_wiki(input): db = DummyDB() out = StringIO.StringIO() if input.endswith(chr(13) + chr(10)): input = input.replace(chr(13) + chr(10), chr(10)) if input.endswith(chr(13)): input = input.replace(chr(13), chr(10)) try: p = parseString("title", input.decode("utf8")) except Exception, ex: raise ex return u'Unable to parse input!'
def main(): #import htmlwriter from mwlib.dummydb import DummyDB db = DummyDB() for x in sys.argv[1:]: input = unicode(open(x).read(), 'utf8') from mwlib import expander te = expander.Expander(input, pagename=x, wikidb=db) input = te.expandTemplates() tokens = tokenize(input, x) p = Parser(tokens, os.path.basename(x)) r = p.parse() show(sys.stdout, r, 0)
def main(): for fn in sys.argv[1:]: from mwlib.dummydb import DummyDB from mwlib.uparser import parseString db = DummyDB() input = unicode(open(fn).read(), 'utf8') r = parseString(title=fn, raw=input, wikidb=db) #parser.show(sys.stdout, r) #advtree.buildAdvancedTree(r) #tc = TreeCleaner(r) #tc.cleanAll() preprocess(r) parser.show(sys.stdout, r) odf = ODFWriter() odf.writeTest(r) doc = odf.getDoc() #doc.toXml("%s.xml"%fn) doc.save(fn, True)
def test_definitiondescription(): raw = u""" == test == :One ::Two :::Three ::::Four """ db = DummyDB() r = parseString(title="t", raw=raw, wikidb=db) parser.show(sys.stdout, r) buildAdvancedTree(r) dd = r.getChildNodesByClass(DefinitionDescription) print "DD:", dd for c in dd: assert c.indentlevel == 1 assert len(dd) == 4
def test_copy(): raw = """ ===[[Leuchtturm|Leuchttürme]] auf Fehmarn=== *[[Leuchtturm Flügge]] super da *[[Leuchtturm Marienleuchte]] da auch *[[Leuchtturm Strukkamphuk]] spitze *[[Leuchtturm Staberhuk]] supi *[[Leuchtturm Westermarkelsdorf]] """.decode("utf8") db = DummyDB() r = parseString(title="X33", raw=raw, wikidb=db) buildAdvancedTree(r) c = r.copy() _treesanity(c) def _check(n1, n2): assert n1.caption == n2.caption assert n1.__class__ == n2.__class__ assert len(n1.children) == len(n2.children) for i, c1 in enumerate(n1): _check(c1, n2.children[i]) _check(r, c)
def test_localized_expander(): db = DummyDB("nl") e = expander.Expander(u"{{#als: 1 | yes | no}}", wikidb=db) res = e.expandTemplates() assert res == "yes"
def test_no_tab_removal(): d = DummyDB() r = uparser.parseString(title='', raw='\ttext', wikidb=d) assert not r.find(parser.PreFormatted), 'unexpected PreFormatted node'
def getTreeFromMarkup(raw): return parseString(title="Test", raw=raw, wikidb=DummyDB())
def test_resolve_magic_alias(): db = DummyDB("nl") e = expander.Expander(u"{{#als: 1 | yes | no}}", wikidb=db) assert e.resolve_magic_alias(u"#als") == u"#if" assert e.resolve_magic_alias(u"#foobar") is None
def test_localized_expr(): db = DummyDB("nl") e = expander.Expander(u"{{#expressie: 1+2*3}}", wikidb=db) res = e.expandTemplates() assert res == "7"
def getTreeFromMarkup(raw): tree = parseString(title="Test", raw=raw, wikidb=DummyDB()) advtree.buildAdvancedTree(tree) return tree
def getTreeFromMarkup(raw): from mwlib.dummydb import DummyDB from mwlib.uparser import parseString return parseString(title="Test", raw=raw, wikidb=DummyDB())
def test_localized_switch_default(): db = DummyDB("nl") e = expander.Expander(u"{{#switch: 1 | #standaard=foobar}}", wikidb=db) res = e.expandTemplates() assert res == "foobar"