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
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
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
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
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
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 = ''
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"