Об этом проекте
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 для управления зависимостями. Он отделяет логику генератора от конфигурации сайта, позволяя пользователям поддерживать конфигурацию и контент сайта в отдельном репозитории.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.