Nicola D'Agostino (.net) - Articoli, traduzioni, grafica, web

Testo e HTML oggi sposi

La potenza di Perl al servizio di un progetto semplice, e perciò rivoluzionario, per poter scrivere in HTML con la facilità del testo normale.

di Nicola D’Agostino

Dimenticate editor visuali e programmi pieni di pulsanti e funzioni preconfezionate: il metodo più essenziale ed al tempo stesso logico di scrivere testi e di averli pronti per la pubblicazione sul web è un programmino-filtro in Perl chiamato Markdown. Ideato da John Gruber, Markdown è rilasciato come free software ed è un sistema semplice quanto ambizioso che permette di stilare documenti di solo testo convertiti magicamente in html secondo tutti i crismi del W3C.

L’idea di Markdown è questa: non preoccupiamoci di infarcire i documenti di tag HTML o XHTML ma concentriamoci sulla scrittura di normali file di testo in ASCII. L’unica cosa che dobbiamo fare è di usare alcune convenzioni per segnalare titoli, link o corsivi, convenzioni spesso già diffuse e usate da tempo online.
Per avere il file html finale basta dare una “passata” al testo originale tramite lo script in Perl che interpreta le convenzioni e le trasforma in markup (da cui il gioco di parole del programma).
Il risultato è che ci basta un qualsiasi programma editor, e abbiamo documenti master sempre "puliti": leggibili e fruibili anche prima della conversione.

La sintassi

Markdown non è il primo sistema che cerca di sposare leggibilità e formattazione del testo delegando il lavoro sporco ad un meccanismo di conversione di segni di demarcazione. A differenza di altri sistemi venuti prima come Setext o Textile il punto di forza di Markdown è però una sintassi il più possibile comprensibile e amichevole.

Per segnalare (ed ottenere nel file convertito) il corsivo si usano *asterischi* o _underscore_. Per il grassetto gli **stessi simboli** ma __raddoppiati__.
Per i titoli si possono usare segni di cancelletto (# Titolo) oppure una serie di trattini dopo una riga di testo. Il risultato è un tag <H1>.
Per le liste basta preporre un trattino, segno di addizione o asterisco prima di ogni elemento; per avere la formattazione tipo codice un semplice segno di tabulazione. I link? Racchiudere il testo tra parentesi quadre e l’url a seguire in una tonda oppure solo i simboli di < e > attorno all’indirizzo.

Si tratta di scelte che puntano alla semplicità ed alla facilità d’uso e che non appesantiscano la lettura del testo come è, anche a costo di essere limitata e non esaustiva di tutti i tag esistenti nell’html.
Per l’elenco di regole e convenzioni l’url è http://daringfireball.net/projects/markdown/syntax

Il successo di Markdown

Una dimostrazione di popolarità di markdown sono i numerosi porting realizzati nel giro di poco tempo del rilascio. abbiamo una versione in PHP, un modulo in Python, una libreria per Ruby e un’implementazione anche in Javascript.
Markdown è stato incluso nella lista dei pacchetti di Debian Linux e esistono infine ben due plug-in: uno è un "servizio"specifico per Mac OS X mentre l’altro è un’estensione per Firefox, a cui aggiunge una voce nel menù contestuale, invocabile su qualsiasi testo selezionato premendo il tasto destro del mouse.

conversione da shell di un file testuale

L’uso di Markdown

Markdown è pensato per funzionare come script a sè stante in Perl -e quindi usato per le conversioni da linea di comando o richiamato da programmi che supportano questo linguaggio.
Per usarlo la sintassi da shell Unix è la seguente:

% perl Markdown.pl --html4tags file.txt

Per non far apparire il testo convertito a video ma salvarlo in un file possiamo usare la ridirezione dell’output:

% perl Markdown.pl --html4tags file.txt > file.html


Markdown è usabile anche come plug-in per alcune piattaforme di blogging come Movable Type, e Blosxom con cui si integra offrendo un utilizzo ancora più sofisticato agli utenti.

Le richieste di sistema sono semplici: Perl 5.6.0 o superiore e il modulo libreria Digest::MD5. Per l’uso con Movable Type bisogna avere almeno la 2.6 di quest’ultimo. Per chi volesse provare "senza impegno" la facilità ed efficacia della conversione da testo a HTML c’è anche una versione funzionante online all’url http://daringfireball.net/projects/markdown/dingus

versione online di Markdown

Il percorso inverso

Per chi volesse prendere un testo online e ripulirlo (ma non troppo) per continuare l’editing e poi ripassarlo a Markdown è disponibile un foglio di stile XSLT. Questo, realizzato da un appassionato, è disponibile all’url http://www.lowerelement.com/Geekery/XML/XHTML-to-Markdown.html ed è in grado di trasformare un file XHTML in un testo formattato secondo la sintassi di Markdown, rendendolo fruibile e editabile anche se non si dispone del file di partenza testuale.

Aaron Swartz

Tra gli sviluppatori coinvolti coinvolti più da vicino in Markdown c’è Aaron Swartz. Ragazzo prodigio, Swartz รจ stato coautore a 14 anni delle specifiche dell’RSS 1.0, membro del gruppo di lavoro del W3C per l’RDF e collaboratore del guru del neocopyright Lawrence Lessig e di Creative Commons. Seppure ancora adolescente Swartz è un geek prolifico e tra i programmi realizzati ci sono numerose utility per la conversione di formati e gestione dell’HTML.

Una versione di questo articolo è stata pubblicata su "Hacker Journal" n. 85 del 06/10/2005