diff --git a/evennia/utils/text2html.py b/evennia/utils/text2html.py
index fd751c552..c25aaa69d 100644
--- a/evennia/utils/text2html.py
+++ b/evennia/utils/text2html.py
@@ -232,9 +232,10 @@ class TextToHTMLparser(object):
# change pages (and losing our webclient session).
return self.re_url.sub(r'\1\2', text)
- def convert_links(self, text):
+ def sub_mxp_links(self, match):
"""
- Replaces MXP links with HTML code.
+ Helper method to be passed to re.sub,
+ replaces MXP links with HTML code.
Args:
text (str): Text to process.
@@ -243,9 +244,13 @@ class TextToHTMLparser(object):
text (str): Processed text.
"""
- return self.re_mxplink.sub(r'''\2''', text)
+ cmd, text = [grp.replace('\"', """) for grp in match.groups()]
+ val = r'''{text}'''.format(cmd=cmd, text=text)
+ return val
- def do_sub(self, match):
+ def sub_text(self, match):
"""
Helper method to be passed to re.sub,
for handling all substitutions.
@@ -284,7 +289,8 @@ class TextToHTMLparser(object):
# parse everything to ansi first
text = parse_ansi(text, strip_ansi=strip_ansi, xterm256=True, mxp=True)
# convert all ansi to html
- result = re.sub(self.re_string, self.do_sub, text)
+ result = re.sub(self.re_string, self.sub_text, text)
+ result = re.sub(self.re_mxplink, self.sub_mxp_links, result)
result = self.re_color(result)
result = self.re_bold(result)
result = self.re_underline(result)
@@ -294,7 +300,6 @@ class TextToHTMLparser(object):
result = self.convert_linebreaks(result)
result = self.remove_backspaces(result)
result = self.convert_urls(result)
- result = self.convert_links(result)
# clean out eventual ansi that was missed
#result = parse_ansi(result, strip_ansi=True)