"""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) def include_raw(macro, environ, pagename=None, *args, **kwargs): """Return the raw text of the page identified by arg_string, rendered in a
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") def include_source(macro, environ, pagename=None, *args, **kwargs): """Return the parsed text of the page identified by arg_string, rendered in ablock. """ 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") )