Ejemplo n.º 1
0
def HTML \
        ( version          = "html/5.jnj"
        , load_path        = ()
        , loader           = None
        , globals          = {}
        , encoding         = "utf-8"
        , i18n             = False
        , Media_Parameters = None
        , GTW              = None
        , prefixes         = {}
        , ** kw
        ) :
    jnj_loader = FileSystemLoader (sos.path.dirname (__file__), "utf-8")
    loaders    = []
    if loader :
        loaders.append (loader)
    if load_path :
        loaders.append (FileSystemLoader (load_path, encoding))
    loaders.append (jnj_loader)
    if prefixes :
        sk = lambda x : (- len (x [1]), x [1])
        for prefix, lp in sorted (pyk.iteritems (prefixes), key = sk) :
            loaders.append \
                ( PrefixLoader
                   ({prefix : FileSystemLoader (lp, encoding)}, delimiter='::')
                )
    loaders.append (PrefixLoader (dict (STD = jnj_loader), delimiter='::'))
    loader     = ChoiceLoader (loaders)
    extensions = (kw.pop ("extensions", []) + Default_Extensions)
    if i18n :
        extensions.append ("jinja2.ext.i18n")
    result = Environment  \
        ( extensions = uniq (extensions), loader = loader, ** kw)
    if GTW is None :
        GTW = JNJ.GTW (result)
    result.globals.update \
        ( globals
        , GTW          = GTW
        , html_version = version
        )
    result.Media_Parameters = Media_Parameters
    result.encoding         = encoding
    result.static_handler   = None
    if i18n :
        result.install_gettext_translations (TFL.I18N)
    return result