Sobre o projeto

escaping é um gerador de sites pessoais com opiniões fortes (opinionated), cuja filosofia central é tratar o GitHub Issues como entrada para compilação determinística, em vez de dados para renderização instantânea. Ele compila Issues em um site estático completo através de um pipeline em etapas, que inclui análise de conteúdo, atribuição de rotas, purificação de HTML e validação de artefatos. As principais capacidades incluem: 1. Gestão de Conteúdo: Suporta a extração de conteúdos para Blog, Ideas e páginas About a partir de GitHub Issues com etiquetas e front matter. 2. Modelo do Site: Gera de forma unificada a página inicial, páginas de arquivo, páginas de detalhes, páginas de projetos, páginas de etiquetas, além de artefatos de SEO como Atom feed, sitemap e robots.txt. 3. Sistema de Temas: Possui diversos temas integrados (como geoqiao.me, Escape1, Escape2, Quiet) e suporta o carregamento de temas personalizados locais. 4. Mecanismos de Segurança: Inclui lista branca de HTML para Markdown, validação rigorosa de URL, restrições de diretório de saída e escape automático do Jinja. 5. Fluxo de Publicação: Adota um mecanismo de publicação em etapas; novos artefatos são validados em um ambiente de staging e, após a aprovação, substituem a saída oficial via renomeação de diretório, suportando rollback. A ferramenta requer um ambiente Python 3.11+ e recomenda o uso do uv para gestão de dependências. Ela separa a lógica do gerador da configuração do site, permitindo que o usuário mantenha as configurações e o conteúdo do site em um repositório independente.