1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
"""
Include macros
Macros for inclusion of other wiki pages
"""
from genshi import builder
def include(macro, environ, pagename=None, *args, **kwargs):
"""Return the parsed content of the page identified by arg_string"""
if pagename is None:
return None
db = environ['db']
page = db.get(pagename, None)
if page is not None:
environ['page.name'] = pagename
return environ['parser'].generate(page, environ=environ)
return None
def include_raw(macro, environ, pagename=None, *args, **kwargs):
"""
Return the raw text of the page identified by arg_string, rendered
in a <pre> block.
"""
if pagename is None:
return None
db = environ['db']
page = db.get(pagename, None)
if page is not None:
return builder.tag.pre(page, class_='plain')
return None
def include_source(macro, environ, pagename=None, *args, **kwargs):
"""
Return the parsed text of the page identified by arg_string, rendered
in a <pre> block.
"""
if pagename is None:
return None
db = environ['db']
page = db.get(pagename, None)
if page is not None:
environ['page.name'] = pagename
return builder.tag.pre(
environ['parser'].render(page, environ=environ).decode('utf-8'),
)
return None
|