MARKMIN('@{a} @{c/f/args}',url=True,environment=dict(a='xxx'))

This commit is contained in:
Massimo Di Pierro
2012-04-05 21:45:09 -05:00
parent 0ea268012b
commit ef1ab39797
3 changed files with 25 additions and 4 deletions
+1 -1
View File
@@ -1 +1 @@
Version 1.99.7 (2012-04-05 20:28:05) dev
Version 1.99.7 (2012-04-05 21:44:41) dev
+17 -1
View File
@@ -290,7 +290,7 @@ regex_auto_video = re.compile('(?<!["\w\>/=])(?P<k>\w+://\S+\.(mp4|mpeg|mov)(\?\
regex_auto_audio = re.compile('(?<!["\w\>/=])(?P<k>\w+://\S+\.(mp3|wav)(\?\S+)?)',re.M)
regex_auto = re.compile('(?<!["\w\>/=])(?P<k>\w+://\S+)',re.M)
def render(text,extra={},allowed={},sep='p'):
def render(text,extra={},allowed={},sep='p',URL=None,environment=None):
"""
Arguments:
- text is the text to be processed
@@ -356,6 +356,22 @@ def render(text,extra={},allowed={},sep='p'):
<img src="http://chart.apis.google.com/chart?cht=tx&chl=\\int_a^b sin(x)dx" />
"""
text = str(text or '')
if environment:
def u2(match,environment=environment):
a = match.group('a')
return str(environment[a])
text = re.compile('@\{(?P<a>\w+?)\}').sub(u2,text)
if not URL is None:
# this is experimental @{controller/index/args}
# turns into a digitally signed URL
def u1(match,URL=URL):
a,b,c = match.group('a'), match.group('b'), match.group('c')
return URL(a,b,args=c.split('/'),
scheme=True,host=True,user_signature=True)
text = re.compile(
'@\{(?P<a>\w+)/(?P<b>\w+)/(?P<c>.+?)\}'
).sub(u1,text)
#############################################################
# replace all blocks marked with ``...``:class with META
# store them into segments they will be treated as code
+7 -2
View File
@@ -2322,18 +2322,23 @@ class MARKMIN(XmlComponent):
"""
For documentation: http://web2py.com/examples/static/markmin.html
"""
def __init__(self, text, extra=None, allowed=None, sep='p'):
def __init__(self, text, extra=None, allowed=None, sep='p',
url=None, environment=None):
self.text = text
self.extra = extra or {}
self.allowed = allowed or {}
self.sep = sep
self.url = URL if url==True else url
self.environment = environment
def xml(self):
"""
calls the gluon.contrib.markmin render function to convert the wiki syntax
"""
from contrib.markmin.markmin2html import render
return render(self.text,extra=self.extra,allowed=self.allowed,sep=self.sep)
return render(self.text,extra=self.extra,
allowed=self.allowed,sep=self.sep,
URL=self.url, environment=self.environment)
def __str__(self):
return self.xml()