🛠️ 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/.jpg por .webp, arquivando os originais com segurança.
  • update_projetos_webp.ps1: Atualiza as extensões em _includes/projetos.md e _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 de title, layout, date ou description.
  • 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.

📚 Guias Complementares