"""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 a 
 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")
        )