from django.contrib.staticfiles.storage import staticfiles_storage from django.conf import settings from django.urls import reverse from jinja2 import Environment from compressor.contrib.jinja2ext import CompressorExtension from django_activeurl.ext.django_jinja import ActiveUrl from entries.kinds import all as entry_kinds from wellknowns.favicons import icons as favicons from .ago import ago from .markdown import markdown from ..theme import color as theme_color from ..utils import friendly_url, load_package_json def environment(**options): env = Environment( extensions=[ActiveUrl, CompressorExtension], trim_blocks=True, lstrip_blocks=True, **options ) env.filters.update( { "ago": ago, "friendly_url": friendly_url, "markdown": markdown, } ) env.globals.update( { "entry_kinds": entry_kinds, "favicons": favicons, "package": load_package_json(), "settings": settings, "static": staticfiles_storage.url, "theme_color": theme_color, "url": reverse, } ) return env