Об этом проекте

escaping — это имеющий четкую концепцию (opinionated) генератор персональных сайтов, основной идеей которого является рассмотрение GitHub Issues как входных данных для детерминированной компиляции, а не данных для рендеринга в реальном времени. С помощью многоэтапного конвейера, включающего парсинг контента, распределение маршрутов, очистку HTML и проверку артефактов, он компилирует Issues в полноценный статический веб-сайт. Основные возможности включают: 1. Управление контентом: поддержка извлечения содержимого для страниц Blog, Ideas и About из GitHub Issues с метками и front matter. 2. Модель сайта: унифицированная генерация главной страницы, архива, страниц с деталями, страниц проектов, страниц тегов, а также SEO-артефактов, таких как Atom feed, sitemap и robots.txt. 3. Система тем: встроенные темы (например, geoqiao.me, Escape1, Escape2, Quiet) и поддержка загрузки локальных пользовательских тем. 4. Механизмы безопасности: белый список Markdown HTML, строгая проверка URL, ограничение выходных каталогов и автоматическое экранирование Jinja. 5. Процесс публикации: использование многоэтапного механизма публикации, при котором новые артефакты заменяют официальный вывод путем переименования каталогов после успешной проверки в среде staging, с поддержкой отката. Инструмент требует среды Python 3.11+ и рекомендует использовать uv для управления зависимостями. Он отделяет логику генератора от конфигурации сайта, позволяя пользователям поддерживать конфигурацию и контент сайта в отдельном репозитории.