Much better support for tables now and notice classes should be working with proper templates
This commit is contained in:
parent
b3a480be3e
commit
17bf6b3405
1 changed files with 39 additions and 13 deletions
|
@ -24,31 +24,53 @@ def _table_xlat(data):
|
||||||
#sys.stderr.write("Data: %s" % data)
|
#sys.stderr.write("Data: %s" % data)
|
||||||
for line in data.splitlines(True):
|
for line in data.splitlines(True):
|
||||||
if line.strip(':').strip().startswith(u"||"):
|
if line.strip(':').strip().startswith(u"||"):
|
||||||
|
# Gut the html stuff until we figure out what to do with it
|
||||||
|
#line = re.sub(r'<([a-zA-Z\/][^>])*>', '\1|', line)
|
||||||
if not in_table:
|
if not in_table:
|
||||||
if line.strip().startswith(u"||<tableclass"):
|
if line.strip().startswith(u"||<tableclass"):
|
||||||
#result.append(u"{{message/notice")
|
#result.append(u"{{message/notice")
|
||||||
result.append(u"{|")
|
#tableclass = re.sub(r'.*<([a-zA-Z\/][^>]*)>.*', r'\1', line.split('>')[0] + '>')
|
||||||
|
tableclass = re.sub(r'.*<([a-zA-Z\/][^>]*)>(.*)', r'\1 | \2', line).replace('tableclass="', 'Template:').replace(' ', '/', 1).replace('"', '', 1)
|
||||||
|
result.append(u"{{ %s" % tableclass)
|
||||||
has_class = True
|
has_class = True
|
||||||
elif line.strip().startswith(u"||<tablestyle"):
|
elif line.strip().startswith(u"||<tablestyle"):
|
||||||
result.append(u"{|")
|
tablestyle = re.sub(r'.*<([a-zA-Z\/][^>]*)>.*', r'\1', line.split('>')[0] + '>')
|
||||||
|
tablestyle = tablestyle.replace('tablestyle', 'style')
|
||||||
|
result.append(u"{| %s" % tablestyle)
|
||||||
else:
|
else:
|
||||||
result.append(u"{| border=\"1\"\n")
|
result.append(u"{| border=\"1\"")
|
||||||
in_table = True
|
in_table = True
|
||||||
newline = line[1:]
|
newline = line[1:]
|
||||||
while newline[-1] in (u"|", u" "):
|
while newline[-1] in (u"|", u" "):
|
||||||
newline = newline[:-1]
|
newline = newline[:-1]
|
||||||
|
|
||||||
newline = re.sub('\<tableclass.*"\>', '', newline)
|
#newline = re.sub('\<tableclass.*"\>', '', newline)
|
||||||
newline = re.sub('\<tablestyle.*"\>', '', newline)
|
#newline = re.sub('\<tablestyle.*"\>', '', newline)
|
||||||
newline = newline.rstrip().rstrip('||').rstrip()
|
newline = newline.rstrip().rstrip('||').rstrip()
|
||||||
result.append(newline)
|
#newline = re.sub(r'.*<([a-zA-Z\/][^>]*)>.*', r'\1 |', newline)
|
||||||
result.append(u"\n|-\n")
|
#newline = re.sub(r'<([a-zA-Z\/][^>]*)>', r'\1 |', newline)
|
||||||
|
newline = re.sub(r'<tablestyle[=a-zA-Z\/][^>]*>', r'', newline)
|
||||||
|
# Ugh nasty
|
||||||
|
if newline.find('rowstyle') != -1:
|
||||||
|
newline = re.sub(r'<([a-zA-Z\/][^>]*)>', r'\1 \n|', newline)
|
||||||
|
newline = newline.replace('|rowstyle', 'style')
|
||||||
|
newline = newline.replace('| rowstyle', 'style')
|
||||||
|
result.append(u"\n|- %s" % newline)
|
||||||
|
else:
|
||||||
|
newline = newline.replace('<style', 'style')
|
||||||
|
newline = newline.replace('">', '" |')
|
||||||
|
newline = newline.replace('" >', '" |')
|
||||||
|
newline = newline.replace("'>", "' |")
|
||||||
|
newline = newline.replace("' >", "' |")
|
||||||
|
if not has_class:
|
||||||
|
result.append(u"\n|-")
|
||||||
|
result.append("\n" + newline)
|
||||||
else:
|
else:
|
||||||
if in_table:
|
if in_table:
|
||||||
if has_class:
|
if has_class:
|
||||||
result.append(u"}}\n")
|
result.append(u"\n}}\n")
|
||||||
else:
|
else:
|
||||||
result.append(u"|}\n")
|
result.append(u"\n|}\n")
|
||||||
in_table = False
|
in_table = False
|
||||||
has_class=False
|
has_class=False
|
||||||
result.append(line)
|
result.append(line)
|
||||||
|
@ -203,13 +225,18 @@ def _fix_links(line):
|
||||||
#while f.find('[:') != -1:
|
#while f.find('[:') != -1:
|
||||||
e = []
|
e = []
|
||||||
for s in split_line:
|
for s in split_line:
|
||||||
|
# sys.stderr.write("s before: %s\n" % s)
|
||||||
if s.find('[:') != -1:
|
if s.find('[:') != -1:
|
||||||
s = s.replace('[:', '[[',1)
|
s = s.replace('[:', '[[',1)
|
||||||
s = s.replace(':', '| ', 1)
|
tmp = s.split('[[')
|
||||||
|
#sys.stderr.write("0: " + tmp[0])
|
||||||
|
#sys.stderr.write("1: " + tmp[1])
|
||||||
|
s = tmp[0] + '[[' + tmp[1].replace(':', '| ', 1)
|
||||||
s = s.replace(']', ']]', 1)
|
s = s.replace(']', ']]', 1)
|
||||||
s = s + ']]'
|
s = s + ']]'
|
||||||
elif s.find('[') != -1:
|
elif s.find('[') != -1:
|
||||||
s = s + ']'
|
s = s + ']'
|
||||||
|
#sys.stderr.write("s after: %s\n" % s)
|
||||||
e.append(s)
|
e.append(s)
|
||||||
line = ' '.join(e)
|
line = ' '.join(e)
|
||||||
# line = re.sub(ur'\[\:(.*)\:(.*)\]', ur"[[\1 |\2]]", line)
|
# line = re.sub(ur'\[\:(.*)\:(.*)\]', ur"[[\1 |\2]]", line)
|
||||||
|
@ -218,9 +245,8 @@ def _fix_links(line):
|
||||||
return (line, {})
|
return (line, {})
|
||||||
|
|
||||||
def _remove_toc(line):
|
def _remove_toc(line):
|
||||||
return (line, {})
|
line = line.replace('[[TableOfContents]]', '')
|
||||||
if not line.find('TableOfContents') == -1:
|
line = line.replace('[[ TableOfContents ]]', '')
|
||||||
line = re.sub(r'\[\[.*TableOfContents.*\]\]', '', line)
|
|
||||||
return (line, {})
|
return (line, {})
|
||||||
|
|
||||||
def _fix_attachments(line, page_name):
|
def _fix_attachments(line, page_name):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue