summaryrefslogtreecommitdiff
path: root/trac2md.py
diff options
context:
space:
mode:
Diffstat (limited to 'trac2md.py')
-rwxr-xr-xtrac2md.py27
1 files changed, 21 insertions, 6 deletions
diff --git a/trac2md.py b/trac2md.py
index ee9d80a..f7816ce 100755
--- a/trac2md.py
+++ b/trac2md.py
@@ -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)