Пример #1
0
def build_website(args):
    logging.info('Building website')
    env = jinja2.Environment(
        loader=jinja2.FileSystemLoader(args.website_dir),
        extensions=['jinja2.ext.i18n', 'jinja2_highlight.HighlightExtension'])
    env.extend(jinja2_highlight_cssclass='syntax p-3 my-3')
    translations_dir = os.path.join(args.website_dir, 'locale')
    env.install_gettext_translations(mdx_clickhouse.get_translations(
        translations_dir, 'en'),
                                     newstyle=True)

    shutil.copytree(args.website_dir,
                    args.output_dir,
                    ignore=shutil.ignore_patterns('*.md', '*.sh', '*.css',
                                                  '*.js', 'build', 'docs',
                                                  'public', 'node_modules',
                                                  'templates', 'feathericons'))

    for root, _, filenames in os.walk(args.output_dir):
        for filename in filenames:
            if filename == 'main.html':
                continue

            path = os.path.join(root, filename)
            if not (filename.endswith('.html') or filename.endswith('.js')):
                continue
            logging.info('Processing %s', path)
            with open(path, 'rb') as f:
                content = f.read().decode('utf-8')

            template = env.from_string(content)
            content = template.render(args.__dict__)

            with open(path, 'wb') as f:
                f.write(content.encode('utf-8'))
Пример #2
0
def init_jinja2_env(args):
    import mdx_clickhouse
    env = jinja2.Environment(
        loader=jinja2.FileSystemLoader(
            [args.website_dir,
             os.path.join(args.docs_dir, '_includes')]),
        extensions=['jinja2.ext.i18n', 'jinja2_highlight.HighlightExtension'])
    env.extend(jinja2_highlight_cssclass='syntax p-3 my-3')
    translations_dir = os.path.join(args.website_dir, 'locale')
    env.install_gettext_translations(mdx_clickhouse.get_translations(
        translations_dir, 'en'),
                                     newstyle=True)
    init_jinja2_filters(env)
    return env
Пример #3
0
def init_jinja2_env(args):
    import mdx_clickhouse

    env = jinja2.Environment(
        loader=jinja2.FileSystemLoader(
            [args.website_dir, os.path.join(args.src_dir, "docs", "_includes")]
        ),
        extensions=["jinja2.ext.i18n", "jinja2_highlight.HighlightExtension"],
    )
    env.extend(jinja2_highlight_cssclass="syntax p-3 my-3")
    translations_dir = os.path.join(args.website_dir, "locale")
    env.install_gettext_translations(
        mdx_clickhouse.get_translations(translations_dir, "en"), newstyle=True
    )
    init_jinja2_filters(env)
    return env