Ottimizza gli export ZIP generati da Staatic (WordPress → sito statico) e li deploya automaticamente su GitHub Pages.
| Operazione | Dettagli |
|---|---|
| Converti immagini → WebP | PNG e JPEG vengono convertite in WebP con qualità configurabile |
| Riscrittura URL (CMS → produzione) | Riscrive automaticamente i domini nei file JSON, ad es. cms.miosito.lan → www.miosito.com (configurabile) |
| Confronto con branch raw | Dry run: confronta il contenuto locale con il repository remoto prima di caricare |
| Rimuovi JavaScript | Elimina tutti i file .js |
| Pulisci HTML | Rimuove commenti e tag <script> |
| Pulisci sitemap | Rimuove entry /feed/ dalle sitemap XML |
| Riscrivi robots.txt | Mantiene solo le direttive Sitemap: |
| Aggiorna riferimenti immagini | .png / .jpg / .jpeg → .webp in tutti i file di testo |
| Gestisci 404 | Sposta 404_not_found/index.html → 404.html |
| Report link rotti | Genera un report con tutti i link interni non validi |
| Deploy GitHub | Push automatico su branch raw (originale) e main (ottimizzato) |
| AdSense auto-ads | Inietta il tag Google AdSense in tutte le pagine HTML |
Scarica l'ultima release dalla pagina Releases:
- Windows:
staatic-optimizer-windows.exe - macOS:
staatic-optimizer-macos - Linux:
staatic-optimizer-linux
git clone https://github.com/currentjot/staatic-optimizer.git
cd staatic-optimizer
pip install -r requirements.txt# Pipeline completa (raw + ottimizzazione + main)
staatic-optimizer export.zip utente/nome-repo
# Confronta prima di caricare (dry run)
staatic-optimizer export.zip utente/nome-repo --confronta
# Con riscrittura URL personalizzata
staatic-optimizer export.zip utente/repo --url-da "wp.*.local" --url-a "www.*.com"
# Solo ottimizzazione e deploy su main (salta branch raw)
staatic-optimizer export.zip utente/nome-repo --skip-raw
# Qualità WebP personalizzata
staatic-optimizer export.zip utente/nome-repo --qualita 60
# Con Google AdSense auto-ads
staatic-optimizer export.zip utente/nome-repo --adsense ca-pub-1234567890| Opzione | Descrizione | Default |
|---|---|---|
zip_file |
Percorso del file ZIP | — |
repo |
Repository GitHub (utente/repo) |
— |
--confronta |
Confronta ZIP locale vs branch raw senza caricare (dry run) |
false |
--qualita |
Qualità WebP (1–100) | 80 |
--skip-raw |
Salta l'upload sul branch raw |
false |
--url-da |
Pattern dominio di origine (* = nome sito) |
— |
--url-a |
Pattern dominio di destinazione (* = nome sito) |
— |
--adsense |
Publisher ID AdSense (es: ca-pub-1234567890). Inietta il tag auto-ads nel <head> di ogni pagina HTML |
— |
--version |
Mostra la versione | — |
Con --confronta il programma clona il branch raw, calcola gli hash SHA-256 di ogni file e mostra un report delle differenze senza caricare nulla:
========================================================
REPORT CONFRONTO: LOCALE vs RAW
========================================================
Riepilogo:
File nel repo (raw): 142
File nello ZIP locale: 148
─────────────────────────────
+ Nuovi (da aggiungere): 8
- Rimossi (da eliminare): 2
~ Modificati: 14
= Invariati: 128
┌─ FILE NUOVI (8) ──────────────────
│ + blog/nuovo-post/index.html (12.3 KB)
│ + images/foto-nuova.jpg (340.2 KB)
└──────────────────────────────────────
┌─ FILE MODIFICATI (14) ──────────
│ ~ index.html (8.1 KB → 8.4 KB)
│ ~ sitemap.xml (2.3 KB → 2.5 KB)
└──────────────────────────────────────
Quando WordPress è servito da un CMS locale (es. cms.miosito.lan), l'export Staatic contiene riferimenti a quel dominio nei file JSON. Il carattere * rappresenta il nome del sito, che viene preservato durante la sostituzione.
# Default: cms.*.lan → www.*.com
staatic-optimizer export.zip utente/repo --url-da "cms.*.lan" --url-a "www.*.com"
# WordPress locale su .local
staatic-optimizer export.zip utente/repo --url-da "wp.*.local" --url-a "www.*.com"Se non specifichi --url-da e --url-a, la riscrittura URL viene saltata.
Nota: supporta sia URL normali (
https://cms.miosito.lan) che URL escaped nei JSON (https:\/\/cms.miosito.lan).
- Git installato e autenticato (per il deploy su GitHub)
- Python 3.10+ (se usi il sorgente)
- I branch
rawemaindevono esistere nella repository target
Il progetto include una GitHub Action che genera automaticamente gli eseguibili per Windows, Linux e macOS quando viene creato un tag:
git tag v1.4.1
git push origin v1.4.1La release viene creata automaticamente con i binari allegati.
pip install pyinstaller
pyinstaller --onefile --console --name staatic-optimizer staatic_optimizer.py