Ejemplo n.º 1
0
def gen_assets_url(assets):
    try:
        names = [split_namespec(a)[0] for a in assets]
    except ValueError:
        abort(400)

    is_js = reduce(lambda status, name: status and name.endswith('.js'), names,
                   True)
    is_css = reduce(lambda status, name: status and name.endswith('.css'),
                    names, True)
    output_name = asset_key(assets)
    gendir = os.path.join(current_app.static_folder, 'gen')
    if not os.path.exists(gendir):
        os.mkdir(gendir)
    # The file extensions here are for upstream servers to serve the correct content type:
    if is_js:
        # TODO: Move this !jquery.js to somewhere more relevant
        bundle = Bundle(assets_repo.require(*(['!jquery.js'] + assets)),
                        output='gen/' + output_name + '.js',
                        filters='uglipyjs')
    elif is_css:
        bundle = Bundle(assets_repo.require(*assets),
                        output='gen/' + output_name + '.css',
                        filters=['cssrewrite', 'cssmin'])
    else:
        abort(400)

    bundle.env = current_app.assets
    return bundle.urls()[0]
Ejemplo n.º 2
0
def gen_assets_url(assets: List[str]) -> str:
    """Create an asset bundle and return URL (helper for :func:`ext_assets`)."""
    # TODO: write test for this function
    try:
        names = [split_namespec(a)[0] for a in assets]
    except ValueError:
        abort(400)

    is_js = all(name.endswith('.js') for name in names)
    is_css = all(name.endswith('.css') for name in names)
    output_name = asset_key(assets)
    gendir = os.path.join(current_app.static_folder, 'gen')  # type: ignore[arg-type]
    if not os.path.exists(gendir):
        os.mkdir(gendir)
    # File extensions are for upstream servers to serve the correct content type:
    if is_js:
        # TODO: Move this !jquery.js to somewhere more relevant
        bundle = Bundle(
            assets_repo.require(*(['!jquery.js'] + assets)),
            output='gen/' + output_name + '.js',
            filters='uglipyjs',
        )
    elif is_css:
        bundle = Bundle(
            assets_repo.require(*assets),
            output='gen/' + output_name + '.css',
            filters=['cssrewrite', 'cssmin'],
        )
    else:
        abort(400)

    bundle.env = current_app.assets
    return bundle.urls()[0]
Ejemplo n.º 3
0
def assets_helper(*args, **kwargs):
    result = []
    for f in args:
        try:
            result.append(assets[f])
        except KeyError:
            result.append(f)

    bundle = Bundle(*result, **kwargs)
    with bundle.bind(assets):
        urls = bundle.urls()
    return urls
Ejemplo n.º 4
0
def assets_helper(*args, **kwargs):
    result = []
    for f in args:
        try:
            result.append(assets[f])
        except KeyError:
            result.append(f)

    bundle = Bundle(*result, **kwargs)
    print assets
    raw_input('...')
    urls = bundle.urls(env=assets)

    return urls