In questo articolo descrivo la versione 1.0 di siforge.el, un
piccolissimo tool per editare comodamente i file nel
formato xml[2] di siforge.
Per usare siforge.el è necessario emacs.
Attualmente siforge.el è una semplice raccolta di scheletri, comandi
e funzioni atte a semplificare la scrittura ex-novo di articoli.
In futuro fornirà probabilmente un motore di parsing ad hoc, per
raccogliere le risorse ed inserire automaticamente link,
creare la volo l'output html, ecc.
Il package è stato scritto in emacs lisp.
Gli avveduti sostengono che Emacs sia l'acronimo di "Excavating Mayan
Architecture Comes Simpler" mentre Lisp stia per "Lots of Isolated Silly
Parentheses". Benché ci sia del vero in queste affermazioni, emacs è
uno dei pochi editor per programmatori con una
vastissima libreria di utility già collaudate e pronte all'uso.
Emacs dispone di potenti tool per fare confronti tra file
(ediff/emerge), gestire file sotto controllo di revisione (CVS/SCCS/RCS),
consultare i newsgroup e la posta, ecc.
Questo non toglie che abbia le sue idiosincrasie (come vi).
Installazione
siforge.el è stato testato su Emacs 21.2.1 ma dovrebbe funzionare
anche su emacs 20 e 19.
Per Unix: create una directory ~/emacs.
Sotto Windows la home va creata definendo una variabile di sistema
HOME e poi creando lì dentro la directory, esempio:
set HOME=C:\Documenti
md %HOME%\emacs
runemacs.exe
Scaricate il file siforge.el e copiatelo in ~/emacs,
Inserite le seguenti linee nel vostro ~/.emacs:
Al Boot noterete un nuovo menu a sinistra, chiamato SIForge.
Da questo menu, potete inserire i tag xml necessari per scrivere
articoli.
Iniziamo dal menu "SIForge/Insert": esso contiene una serie di
template che possono essere usati in due modi differenti.
Per iniziare a scrivere un nuovo articolo posizioniamoci su un buffer
vuoto e selezioniamo "SIForge/Insert/Article".
Rispondiamo diligentemente a tutte le domande e ... saremo già al
centro del nostro articolo.
Supponiamo ora di voler inserire un nuovo paragrafo: basterà posizionarci
nel punto desiderato e selezionare
"SIForge/Insert/New Par. Title[h1]".
C'è un secondo uso di questi menu:
proviamo ad evidenziare una stringa con il mouse (per
esempio la parola 'MioTitolo')
e poi selezionare "SIForge/Insert/New Par. Title[h1]".
Emacs scriverà:
<h1>MioTitolo</h1>
Questo comportamento funziona in modo standard con tutti i template,
che "sanno" dove inserire il testo selezionato.
Un'altra feature interessante è la seguente: quando si copia un
articolo di MS-Word in emacs (con la clipboard) si possono trovare i
paragrafi già separati da una linea vuota. È allora possibile
chiedere ad emacs di inserire automaticamente i tag di paragrafo
<p/> in modo controllato.
Per provare, selezionate "SIForge/Query Insert <p/>": emacs
sfrutterà una espressione regolare per "indovinare" se si trova
di fronte ad un fine paragrafo e vi chiederà se deve inserire il tag P.
Se non volete annoiarvi rispondete con ! (Shift-1) e lasciate che
emacs faccia tutte le sostituzioni senza interpellarvi.
Custom menu
Il package in esame espone una serie di opzioni, che seguono lo
standard imposto da emacs.
Per usarle, selezionare "Options/Cutomize Emacs/Browse Customization
Groups". Poi cliccate sul simbolo [+] a fianco di Applications. Apparirà un sotto
menu: come prima, cliccare sul simbolo [+] di SIForge.
Dovrebbe apparire qualcosa si simile alla seguente figura:
Figura 1: Esempio d'uso delle customizations in emacs
Le variabili attualmente sono usate nella costruzione di alcuni
template e dalle funzionalità avanzate.
Per esempio la variabile siforge-author-tag
è usata dal comando "Insert Article" per popolare l'attributo author del
tag XML <article>.
Uso avanzato
Durante la digitazione risulta comodo annotare una risorsa,
per ricordarsi che andrà poi descritta.
Per fare questo potete usare il menu "SIForge/Insert/Resource [smart]"
Contrariamente a "Insert/Resource" questo menu salva la
posizione corrente del cursore, si posiziona alla fine della lista di
resources e inserisce la risorsa, dopodiché vi riporta dove eravate.
Resource Indexing
Questa funzionalità non è ancora pronta ma risulta comunque utile.
Potete ottenere una lista di tutte le risorse presenti nel documento
corrente, selezionando "SIForge/Experimental/List Resources".
Il buffer "*siforge*" va poi distrutto manualmente.
Limitazioni
siforge.el funziona solo con il formato xml definito per siforge, e
richiede una buona padronanza di tale formato, perché altrimenti è
possibile scrivere un xml errato.
Benché esistano dei tool xml/sgml per emacs, questa libreria non li
usa ne' fornisce un minor mode di affiancamento.
Personalmente uso l'html-mode (Provare con Alt-x e poi scrivete
html-mode) che evidenzia i tag e la chiusura delle parentesi
angolari. Purtroppo di default inserisce i tag in maiuscolo, cosa che non è
XHTML-compliant.
Informazioni sull'autore
Giovanni Giorgi, classe 1974. Dopo il diploma di liceo Classico, si è laureato in Informatica nel febbraio 2000, e attualmente lavora nel campo del software finanziario (trading on line, soluzioni web). Appassionato di linguaggi di programmazione, si interessa anche di politica e letteratura.