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'))
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
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