Skip to content

currentjot/staatic-optimizer

Repository files navigation

⚡ Staatic Optimizer

Build Version Python License

Ottimizza gli export ZIP generati da Staatic (WordPress → sito statico) e li deploya automaticamente su GitHub Pages.


Cosa fa

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.lanwww.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.html404.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

Installazione

Eseguibile (consigliato)

Scarica l'ultima release dalla pagina Releases:

  • Windows: staatic-optimizer-windows.exe
  • macOS: staatic-optimizer-macos
  • Linux: staatic-optimizer-linux

Da sorgente

git clone https://github.com/currentjot/staatic-optimizer.git
cd staatic-optimizer
pip install -r requirements.txt

Utilizzo

# 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

Opzioni

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

Confronto con branch raw (dry run)

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)
  └──────────────────────────────────────

Riscrittura URL

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).


Prerequisiti

  • Git installato e autenticato (per il deploy su GitHub)
  • Python 3.10+ (se usi il sorgente)
  • I branch raw e main devono esistere nella repository target

Build dell'eseguibile

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.1

La release viene creata automaticamente con i binari allegati.

Build manuale

pip install pyinstaller
pyinstaller --onefile --console --name staatic-optimizer staatic_optimizer.py

Licenza

MIT

About

Ottimizza export ZIP di Staatic (WordPress → sito statico): converte immagini in WebP, pulisce HTML/JS, riscrive URL CMS→produzione e deploya su GitHub Pages. CLI + GUI.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages