Back to Homepage

Downloads

Bash script per codificare i caratteri in entità HTML


FREE DOWNLOAD: accent2html.sh

La cosa più fastidiosa per un manutentore di pagine web statiche che ha a che fare con la lingua Italiana per scrivere un paragrafo di testo HTML, sono le lettere accentate, che devono essere convertite in entità html per essere correttamente interpretate dai browser.

Dopo una ricerca infruttuosa per cercare un comando già pronto per bash, ho scritto uno script bash. Pensando che altre persone potessero essere interessate, ho deciso di pubblicarlo nel mio sito rendendolo disponibile come programma open source (licenza MIT).

Anche se ci sono editor come Bluefish, che hanno la possibilità di convertire i caratteri in entità HTLM (e vice-versa), io ho preferito usare uno script bash per preparare le mie pagine tutte insieme al termine dell'editazione.

Ho volutamente evitare soluzioni e scorciatoie che portassere ad un codice più efficiente poichè ero più interessato a ridurre i rischi di introdurre bugs e ad avere un codice molto leggibile.

Il mio codice si focalizza sui caratteri Italiani ma lo script puì essere facilmente modificato per estenderlo ad altri linguaggi, semplicemente aggiungendo una linea per ogni carattere speciale che si vuole tradurre.

Lo script è ben documentato: utilizza il comando sed per la sostituzione dei caratteri con entità html. Converte un carattere alla volta, scrivento avanti e indietro tra due file che alla fine delle conversioni vengono cancellati.

Dal punto di vista dell'uso: scrivete il testo delle vostre pagnie html senza preoccuparvi delle lettere accentate. Quando avrete finito l'editazione, lanciate questo script: preparerà tutte le pagine html per essere caricate nel server.

Si prega di notare che dovete rendere questo file eseguibile prima di lanciarlo, o non funzionerà.

Per evitare di modificare i files HTML originali, all'inizio li copio tutti in una sottocartella che ho chiamato a2html (ma potete usare un altro nome se preferite!

Questo script è per bash. Nel caso n cui abbiate a che fare con la programmazione PHP c'è un modo molto semplice e diretto per convertire tutti i caratteri speciali in un unico comando:
   $string_out = htmlentities($string_in, ENT_COMPAT, 'UTF-8');


Back to Homepage