[^\]]*)\])?)?)',re.S) @@ -534,8 +534,9 @@ ttab_in = maketrans("'`:*~\\[]{}@$+-.#", '\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\ ttab_out = maketrans('\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b',"'`:*~\\[]{}@$+-.#") def markmin_escape(text): - """ insert \\ before markmin control characters: '`:*~[]{}@$ """ - return regex_markmin_escape.sub(lambda m: '\\'+m.group(0).replace('\\','\\\\'), text) + """ insert \\ before markmin control characters: '`:*~[]{}@$ """ + return regex_markmin_escape.sub( + lambda m: '\\'+m.group(0).replace('\\','\\\\'), text) def autolinks_simple(url): """ @@ -784,8 +785,8 @@ def render(text, >>> render("this is ``a green text``:color[green:]") '
this is a green text
' - >>> render("**@{probe}**", environment=dict(probe="this is a test")) - 'this is a test
' + >>> render("**@{probe:1}**", environment=dict(probe=lambda t:"test %s" % t)) + 'test 1
' >>> render('[[id1 [span **messag** in ''markmin''] ]] ... [[**link** to id [link\\\'s title] #mark1]]') '' @@ -798,7 +799,13 @@ def render(text, if environment: def u2(match, environment=environment): - return str(environment.get(match.group('a'), match.group(0))) + f = environment.get(match.group('a'), match.group(0)) + if callable(f): + try: + f = f(match.group('b')) + except Exception, e: + f = 'ERROR: %s' % e + return str(f) text = regex_env.sub(u2, text) if URL is not None: