diff options
Diffstat (limited to 'trac2md.py')
-rwxr-xr-x | trac2md.py | 27 |
1 files changed, 21 insertions, 6 deletions
@@ -14,8 +14,9 @@ from base64 import b64decode from datetime import datetime from urllib.parse import quote -wikilink_pattern = re.compile('\[http(.*)\]') -wikilink_extract = re.compile('\[(.*)\]') +wikilink_1_pattern = re.compile('\[http(.*)\]') +wikilink_1_extract = re.compile('\[(.*)\]') +wikilink_2_pattern = re.compile('\[\[([a-zA-Z0-9_]+)\]\]') strikethrough_pattern = re.compile('~~(.*)~~') camelcase_pattern = re.compile("!(\w+)") image_pattern = re.compile("\[\[Image\((.*)\)\]\]") @@ -70,12 +71,12 @@ def convert_headers(line): return line -def convert_wikilinks(line): +def convert_wikilinks_1(line): ''' Convert wikiformat links ''' - if wikilink_pattern.search(line): + if wikilink_1_pattern.search(line): try: - result = wikilink_extract.search(line).group(1) + result = wikilink_1_extract.search(line).group(1) if result: parts = result.split(' ', 1) if len(parts) == 1: @@ -90,6 +91,19 @@ def convert_wikilinks(line): return line +def convert_wikilinks_2(line): + ''' Convert more wiki links''' + m = wikilink_2_pattern.search(line) + if m: + text = m.group(1) + if text.lower() == "pageoutline": + link = "" + else: + link = "[{0}]({0})".format(text) + line = line.replace(m.group(0), link) + return line + + def convert_strike(line): ''' Convert wikiformat striked text ''' @@ -217,7 +231,8 @@ def WikiToMD(content, slug): line = convert_headers(line) # Convert wiki links - line = convert_wikilinks(line) + line = convert_wikilinks_1(line) + line = convert_wikilinks_2(line) # Convert striked through text line = convert_strike(line) |