/
liquid-g
/
liquid-code
Обзор
Документация
Войти
/
liquid-g
/
liquid-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop-0.2.0
src/liquidcode/template.py
63 строки
2 KB
User
ci: настроен Black и flake8 для автоматического форматирования кода
04 июл 2026, 08:14
04 июл 2026, 08:14
4778ed6
Код
Авторство
О чём код?
""" Шаблонизатор для LiquidCode на основе Jinja2. Предоставляет класс TemplateManager для загрузки и рендеринга шаблонов из указанной директории. """ import os try: from jinja2 import Environment, FileSystemLoader except ImportError: raise ImportError( "Jinja2 is required for template support. " "Install with: pip install Jinja2" ) class TemplateManager: """ Управляет загрузкой и рендерингом шаблонов из указанной директории. """ def __init__(self, template_dir: str = "templates") -> None: """ Инициализирует менеджер шаблонов. Args: template_dir: Путь к папке с шаблонами (по умолчанию 'templates'). """ self.template_dir = template_dir self.env = None self._init_environment() def _init_environment(self) -> None: """ Создаёт окружение Jinja2, если папка существует, иначе создаёт её. """ if not os.path.exists(self.template_dir): os.makedirs(self.template_dir, exist_ok=True) self.env = Environment( loader=FileSystemLoader(self.template_dir), autoescape=True, ) def render(self, template_name: str, **context) -> str: """ Рендерит шаблон с переданными переменными. Args: template_name: Имя файла шаблона (например, 'welcome.html.j2'). **context: Переменные для подстановки в шаблон. Returns: Строка с отрендеренным HTML. Raises: jinja2.exceptions.TemplateNotFound: Если шаблон не найден. """ if self.env is None: self._init_environment() template = self.env.get_template(template_name) return template.render(**context)