🛠️ Central de Scripts & Automações — Artes do Sul
Este diretório reúne as ferramentas de automação, captura, validação, otimização de mídia e deploy do ecossistema Artes do Sul.
⚡ Guia Rápido de Comandos
| Categoria | Script | Comando de Execução | Descrição |
|---|---|---|---|
| Captura | capture_screenshots.mjs |
node scripts/capture_screenshots.mjs [arquivo.json] |
Captura screenshots automáticos de sites via JSON |
| Deploy | sync_ftp.py |
python scripts/sync_ftp.py --build |
Compila Jekyll e sincroniza incremental via FTP/FTPS |
| Deploy | sync_ftp.ps1 |
.\scripts\sync_ftp.ps1 |
Wrapper PowerShell para deploy rápido |
| Imagens | optimize_images.ps1 |
.\scripts\optimize_images.ps1 -Path "assets/img" |
Otimização em massa e conversão para WebP |
| Imagens | convert_to_webp.ps1 |
.\scripts\convert_to_webp.ps1 -ImagePath "..." |
Converte imagem individual para WebP |
| Imagens | convert_to_webp_python.py |
python scripts/convert_to_webp_python.py ... |
Conversão via Python Pillow |
| Imagens | replace_images_with_webp.ps1 |
.\scripts\replace_images_with_webp.ps1 |
Atualiza tags de posts para arquivos .webp |
| Imagens | update_projetos_webp.ps1 |
.\scripts\update_projetos_webp.ps1 |
Atualiza referências de projetos para WebP |
| SEO / Jekyll | validate_frontmatter.rb |
ruby scripts/validate_frontmatter.rb |
Valida YAML front matter de todos os posts |
| SEO / Jekyll | validate_links.rb |
ruby scripts/validate_links.rb |
Checa links quebrados (internos e externos) |
| SEO / Jekyll | add_dates_from_filename.rb |
ruby scripts/add_dates_from_filename.rb |
Preenche datas faltantes a partir do nome do post |
| SEO / Jekyll | add_missing_dates.rb |
ruby scripts/add_missing_dates.rb |
Preenche datas ausentes no front matter |
| SEO / Jekyll | improve_descriptions.rb |
ruby scripts/improve_descriptions.rb |
Ajusta descrições/resumos dos posts para SEO |
| SEO / Jekyll | unify_tags.rb |
ruby scripts/unify_tags.rb |
Normaliza e unifica tags nos posts |
1. 📸 Captura Automática de Screenshots Web
capture_screenshots.mjs
Script moderno em Node.js que captura telas de alta resolução (1440x900) usando o motor do navegador nativo via Playwright CLI.
Recursos:
- Suporta argumentos de linha de comando para passar qualquer arquivo
.json. - Ignora erros de SSL/certificados expirados (
--ignore-https-errors). - Normaliza nomes de arquivos automaticamente com
slugify. - Salva os resultados diretamente em
assets/img/screenshots-projetos/.
Exemplos de Uso:
# 1. Executa com a lista padrão (scripts/screenshot_targets.json)
node scripts/capture_screenshots.mjs
# 2. Executa diretamente sobre a base de dados do Jekyll
node scripts/capture_screenshots.mjs _data/projetos.json
# 3. Executa sobre um arquivo de alvos personalizado
node scripts/capture_screenshots.mjs meus_sites.json
Estrutura do arquivo de alvos (scripts/screenshot_targets.json):
[
{
"name": "01-nome-do-site",
"url": "https://exemplo.com.br/"
}
]
2. 🚀 Sincronização e Deploy (FTP / FTPS)
sync_ftp.py
Script de deploy incremental com suporte a variáveis de ambiente (.env), TLS/SSL, dry-run e build automático do Jekyll.
Recursos:
- Leitura automática de credenciais do
.env(FTP_HOST,FTP_USER,FTP_PASS,FTP_PATH). - Checagem por timestamp e tamanho antes de transferir (economiza banda).
- Flags para build automático, simulação e modo forçado.
Exemplos de Uso:
# Simulação de upload (não altera arquivos no servidor):
python scripts/sync_ftp.py --dry-run
# Build do Jekyll + Upload incremental:
python scripts/sync_ftp.py --build
# Forçar upload de todos os arquivos:
python scripts/sync_ftp.py --force
3. 🎨 Otimização de Mídia e Conversão WebP
optimize_images.ps1: Otimiza a pasta de imagens, gerando versões WebP comprimidas com alta fidelidade visual.convert_to_webp.ps1: Converte arquivos pontuais (PNG/JPG para WebP).convert_to_webp_python.py: Alternativa multiplataforma baseada em Python (Pillow).replace_images_with_webp.ps1: Varre os arquivos em_posts/e substitui extensões.png/.jpgpor.webp, arquivando os originais com segurança.update_projetos_webp.ps1: Atualiza as extensões em_includes/projetos.mde_data/projetos.json.
4. 🔍 Validação de Qualidade e SEO (Jekyll / Markdown)
validate_frontmatter.rb: Garante que nenhum post quebre o build do Jekyll por falta detitle,layout,dateoudescription.validate_links.rb: Testador assíncrono de integridade de links internos e externos.add_dates_from_filename.rb/add_missing_dates.rb: Utilitários para normalização de datas em lotes de posts.improve_descriptions.rb: Extração e enriquecimento automático de meta descriptions para motores de busca.unify_tags.rb: Padronização de taxonomia e tags no blog.