aboutsummaryrefslogtreecommitdiff
path: root/wiki2html.py
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2015-07-06 08:05:31 +0300
committerSergey Poznyakoff <gray@gnu.org>2015-07-06 08:05:31 +0300
commitf3378aebac7e89000ff097ac51c49b62eb6e9f08 (patch)
treecdf7a9b58b52cd6e995ddf63ef05526e60a918f1 /wiki2html.py
parent7ab9949e2c038ee6a7215d91896f2b47a5e7c06d (diff)
downloadwit-f3378aebac7e89000ff097ac51c49b62eb6e9f08.tar.gz
wit-f3378aebac7e89000ff097ac51c49b62eb6e9f08.tar.bz2
Redo parse tree as a sequence of dictionaries, instead of arrays.
Diffstat (limited to 'wiki2html.py')
-rw-r--r--wiki2html.py68
1 files changed, 34 insertions, 34 deletions
diff --git a/wiki2html.py b/wiki2html.py
index 77cb97a..eee592d 100644
--- a/wiki2html.py
+++ b/wiki2html.py
@@ -40,9 +40,9 @@ class HtmlWikiMarkup (WikiMarkup):
envt = { "unnumbered": { "hdr": "ul",
"elt": ["li"] },
- "numbered": { "hdr": "ol",
+ "numbered": { "hdr": "ol",
"elt": ["li"] },
- "defn": { "hdr": "dl",
+ "defn": { "hdr": "dl",
"elt": ["dt","dd"] } }
def mktgt(self, tgt, lang = None):
@@ -81,10 +81,10 @@ class HtmlWikiMarkup (WikiMarkup):
def fmtlink(self, elt, istmpl):
- arg = self.format(elt[1][0])
+ arg = self.format(elt['content'][0])
text = None
- if len(elt[1]) > 1:
- s = map(self.format, elt[1])
+ if len(elt['content']) > 1:
+ s = map(self.format, elt['content'])
if s[0] == 'disambigR' or s[0] == 'wikiquote':
return ""
elif len(s) > 1 and s[1] == 'thumb':
@@ -129,8 +129,8 @@ class HtmlWikiMarkup (WikiMarkup):
return self.fmtlink(elt, True)
def str_ref(self, elt):
- target = elt[1]
- text = self.format(elt[2])
+ target = elt['ref']
+ text = self.format(elt['content'])
return "<a href=\"%s\">%s</a>" % (target,
text if (text and text != '') \
else target)
@@ -142,30 +142,30 @@ class HtmlWikiMarkup (WikiMarkup):
return string
def str_it(self, elt):
- return "<i>" + self.concat(elt[1]) + "</i>"
+ return "<i>" + self.concat(elt['content']) + "</i>"
def str_bold(self, elt):
- return "<b>" + self.concat(elt[1]) + "</b>"
+ return "<b>" + self.concat(elt['content']) + "</b>"
def str_hdr(self, elt):
- level = elt[1] + 1
+ level = elt['level'] + 1
if level > 4:
level = 4
- return "<h%s>%s</h%s>" % (level, self.format(elt[2]), level)
+ return "<h%s>%s</h%s>" % (level, self.format(elt['content']), level)
def str_bar(self):
return "<hr/>"
def str_env(self, elt):
- type = elt[1]
- lev = elt[2]
+ type = elt['envtype']
+ lev = elt['level']
if lev > 4:
lev = 2
string = ""
- for s in elt[3]:
- n = s[1];
+ for s in elt['content']:
+ n = s['subtype'];
string += "<%s>%s</%s>" % (self.envt[type]["elt"][n],
- self.format(s[2]),
+ self.format(s['content']),
self.envt[type]["elt"][n])
return "<%s>%s</%s>" % (self.envt[type]["hdr"],
string,
@@ -174,45 +174,45 @@ class HtmlWikiMarkup (WikiMarkup):
def str_para(self, elt):
string = "";
- for x in elt[1]:
+ for x in elt['content']:
string += self.format(x)
return "<p>" + string + "</p>"
def str_ind(self, elt):
- return ("&nbsp;" * 2 * elt[1]) + self.format(elt[2])
+ return ("&nbsp;" * 2 * elt['level']) + self.format(elt['content'])
def format(self, elt):
- if elt[0] == TEXT:
- if isinstance(elt[1],list):
+ if elt['type'] == 'TEXT':
+ if isinstance(elt['content'],list):
string = ""
- for s in elt[1]:
+ for s in elt['content']:
string += s
else:
- string = elt[1]
+ string = elt['content']
return string
- elif elt[0] == PARA:
+ elif elt['type'] == 'PARA':
return self.str_para(elt)
- elif elt[0] == IT:
+ elif elt['type'] == 'IT':
return self.str_it(elt)
- elif elt[0] == BOLD:
+ elif elt['type'] == 'BOLD':
return self.str_bold(elt)
- elif elt[0] == LINK:
+ elif elt['type'] == 'LINK':
return self.str_link(elt)
- elif elt[0] == TMPL:
+ elif elt['type'] == 'TMPL':
return self.str_tmpl(elt)
- elif elt[0] == BAR:
+ elif elt['type'] == 'BAR':
return self.str_bar()
- elif elt[0] == HDR:
+ elif elt['type'] == 'HDR':
return self.str_hdr(elt)
- elif elt[0] == REF:
+ elif elt['type'] == 'REF':
return self.str_ref(elt)
- elif elt[0] == ENV:
+ elif elt['type'] == 'ENV':
return self.str_env(elt)
- elif elt[0] == IND:
+ elif elt['type'] == 'IND':
return self.str_ind(elt)
- elif elt[0] == SEQ:
+ elif elt['type'] == 'SEQ':
string = ""
- for x in elt[1]:
+ for x in elt['content']:
string += self.format(x)
return string
else:

Return to:

Send suggestions and report system problems to the System administrator.