Exemplo n.º 1
0
    def __init__(self,
                 path,
                 output,
                 static_path='static',
                 static_url='static',
                 asset_config='config.yml'):
        self.path = path
        self.output = output
        self.output_path = os.path.join(path, output)
        self.env = Environment(loader=FileSystemLoader(path),
                               extensions=[AssetsExtension])

        try:
            config_path = os.path.join(self.path, asset_config)
            asset_config = YAMLLoader(config_path)
            self.assets_env = asset_config.load_environment()
        except IOError:
            self.assets_env = AssetsEnvironment()

        if 'directory' not in self.assets_env.config:
            self.assets_env.directory = self.output_path

        if 'url' not in self.assets_env.config:
            self.assets_env.url = static_url

        self.assets_env.load_path = [self.path]
        self.env.assets_environment = self.assets_env
Exemplo n.º 2
0
    def __init__(self, paths=None,
                 packages=None,
                 assets_path=None,
                 globals=None,
                 overlay=None,
                 extensions=None,
                 env_template_params_key='pywb.template_params',
                 env_template_dir_key='pywb.templates_dir'):
        """Construct a new JinjaEnv.

        :param list[str] paths: List of paths to search for templates
        :param list[str] packages: List of assets package names
        :param str assets_path: Path to a yaml file containing assets
        :param dict[str, str] globals: Dictionary of additional globals available during template rendering
        :param overlay:
        :param list extensions: List of webassets extension classes
        :param str env_template_params_key: The full pywb package key for the template params
        :param str env_template_dir_key: The full pywb package key for the template directory
        """

        if paths is None:
            paths = ['templates', '.', '/']

        if packages is None:
            packages = ['pywb']

        self._init_filters()

        loader = ChoiceLoader(self._make_loaders(paths, packages))

        self.env_template_params_key = env_template_params_key
        self.env_template_dir_key = env_template_dir_key

        extensions = extensions or []

        if assets_path:
            extensions.append(AssetsExtension)

        if overlay:
            jinja_env = overlay.jinja_env.overlay(loader=loader,
                                                  trim_blocks=True,
                                                  extensions=extensions)
        else:
            jinja_env = RelEnvironment(loader=loader,
                                       trim_blocks=True,
                                       extensions=extensions)

        jinja_env.filters.update(self.filters)

        if globals:
            jinja_env.globals.update(globals)

        self.jinja_env = jinja_env

        # init assets
        if assets_path:
            assets_loader = YAMLLoader(load(assets_path))
            assets_env = assets_loader.load_environment()
            assets_env.resolver = PkgResResolver()
            jinja_env.assets_environment = assets_env
Exemplo n.º 3
0
    def __init__(self,
                 paths=['templates', '.', '/'],
                 packages=['pywb'],
                 assets_path=None,
                 globals=None,
                 overlay=None,
                 extensions=None,
                 env_template_params_key='pywb.template_params',
                 env_template_dir_key='pywb.templates_dir'):

        self._init_filters()

        loader = ChoiceLoader(self._make_loaders(paths, packages))

        self.env_template_params_key = env_template_params_key
        self.env_template_dir_key = env_template_dir_key

        extensions = extensions or []

        if assets_path:
            extensions.append(AssetsExtension)

        if overlay:
            jinja_env = overlay.jinja_env.overlay(loader=loader,
                                                  trim_blocks=True,
                                                  extensions=extensions)
        else:
            jinja_env = RelEnvironment(loader=loader,
                                       trim_blocks=True,
                                       extensions=extensions)

        jinja_env.filters.update(self.filters)

        if globals:
            jinja_env.globals.update(globals)

        self.jinja_env = jinja_env

        # init assets
        if assets_path:
            assets_loader = YAMLLoader(load(assets_path))
            assets_env = assets_loader.load_environment()
            assets_env.resolver = PkgResResolver()
            jinja_env.assets_environment = assets_env
Exemplo n.º 4
0
    def __init__(self, path, output, static_path="static", static_url="static", asset_config="config.yml"):
        self.path = path
        self.output = output
        self.output_path = os.path.join(path, output)
        self.env = Environment(loader=FileSystemLoader(path), extensions=[AssetsExtension])

        try:
            config_path = os.path.join(self.path, asset_config)
            asset_config = YAMLLoader(config_path)
            self.assets_env = asset_config.load_environment()
        except IOError:
            self.assets_env = AssetsEnvironment()

        if "directory" not in self.assets_env.config:
            self.assets_env.directory = self.output_path

        if "url" not in self.assets_env.config:
            self.assets_env.url = static_url

        self.assets_env.load_path = [self.path]
        self.env.assets_environment = self.assets_env
Exemplo n.º 5
0
    def __init__(self, paths=['templates', '.', '/'],
                       packages=['pywb'],
                       assets_path=None,
                       globals=None,
                       overlay=None,
                       extensions=None):

        self._init_filters()

        loader = ChoiceLoader(self._make_loaders(paths, packages))

        extensions = extensions or []

        if assets_path:
            extensions.append(AssetsExtension)

        if overlay:
            jinja_env = overlay.jinja_env.overlay(loader=loader,
                                                  trim_blocks=True,
                                                  extensions=extensions)
        else:
            jinja_env = RelEnvironment(loader=loader,
                                       trim_blocks=True,
                                       extensions=extensions)

        jinja_env.filters.update(self.filters)

        if globals:
            jinja_env.globals.update(globals)

        self.jinja_env = jinja_env

        # init assets
        if assets_path:
            assets_loader = YAMLLoader(assets_path)
            assets_env = assets_loader.load_environment()
            assets_env.resolver = PkgResResolver()
            jinja_env.assets_environment = assets_env
Exemplo n.º 6
0
    def __init__(self,
                 paths=None,
                 packages=None,
                 assets_path=None,
                 globals=None,
                 overlay=None,
                 extensions=None,
                 env_template_params_key='pywb.template_params',
                 env_template_dir_key='pywb.templates_dir'):
        """Construct a new JinjaEnv.

        :param list[str] paths: List of paths to search for templates
        :param list[str] packages: List of assets package names
        :param str assets_path: Path to a yaml file containing assets
        :param dict[str, str] globals: Dictionary of additional globals available during template rendering
        :param overlay:
        :param list extensions: List of webassets extension classes
        :param str env_template_params_key: The full pywb package key for the template params
        :param str env_template_dir_key: The full pywb package key for the template directory
        """

        if paths is None:
            paths = ['templates', '.', '/']

        if packages is None:
            packages = ['pywb']

        self._init_filters()

        loader = ChoiceLoader(self._make_loaders(paths, packages))

        self.env_template_params_key = env_template_params_key
        self.env_template_dir_key = env_template_dir_key

        extensions = extensions or []

        if assets_path:
            extensions.append(AssetsExtension)

        if overlay:
            jinja_env = overlay.jinja_env.overlay(
                loader=loader,
                autoescape=select_autoescape(),
                trim_blocks=True,
                extensions=extensions)
        else:
            jinja_env = RelEnvironment(loader=loader,
                                       autoescape=select_autoescape(),
                                       trim_blocks=True,
                                       extensions=extensions)

        jinja_env.filters.update(self.filters)

        if globals:
            jinja_env.globals.update(globals)

        self.jinja_env = jinja_env

        # init assets
        if assets_path:
            assets_loader = YAMLLoader(load(assets_path))
            assets_env = assets_loader.load_environment()
            assets_env.resolver = PkgResResolver()
            jinja_env.assets_environment = assets_env

        self.default_locale = ''
Exemplo n.º 7
0
from webassets.loaders import YAMLLoader

loader = YAMLLoader("source/_static/assets.yml")
env = loader.load_environment()

print "Building assets.."

js_assets = env["scripts"].urls()
css_assets = env["styles"].urls()

js_assets_rel = []
for asset in js_assets:
    print " - {}".format(asset)
    asset = "_static{}".format(asset)
    js_assets_rel.append(asset)

css_assets_rel = []
for asset in css_assets:
    print " - {}".format(asset)
    asset = asset[1:]
    css_assets_rel.append(asset)

js = "{{% set script_files = ['{}'] %}}\n".format("', '".join(js_assets_rel))
css = "{{% set css_files = ['{}'] %}}\n".format("', '".join(css_assets_rel))

fp = open("source/_static/assets/assets.html", mode="w")
fp.writelines([js, css])
fp.close()

print "done"