Ecco le nuove macro per il wiki di Ubuntu-it

Insieme a Leo abbiamo terminato lo sviluppo di un paio di macro per il wiki italiano di Ubuntu.

La prima di queste è la macro [[Indice]], che va a sostituire [[TableOfContents]], fornita di base con MoinMoin. La sintassi della macro di default è molto semplice e prevede un solo parametro facoltativo, ovvero la profondità delle sezioni elencate nell’indice. Ecco un esempio:

[[TableOfContents(2)]]

Il risultato è simile al seguente (lo screen si rifà alla pagina Sicurezza/AppArmor):

Se si sostituisce tale macro con questa

[[Indice(depth=2)]]

Il risultato sarà molto più accattivante:

Oltre al parametro depth ve ne sono altri due, align e style: il primo è utile per specificare il posizionamento della tabella (unico valore non accettato è center), il secondo consente invece di adattare lo stile dell’indice a quello di un determinato portale.

Altro discorso per la macro [[VersioniSupportate]]: prima del nostro intervento per inserire la tabella delle versioni in una pagina bisognava utilizzare la macro [[Include]] con una sintassi simile alla seguente, facendo attenzione a inserire una riga per ogni versione:

[[Include(StrumentiWiki/Versioni)]]

[[Include(StrumentiWiki/Hardy)]]

[[Include(StrumentiWiki/Gutsy)]]

[[Include(StrumentiWiki/Feisty)]]

[[Include(StrumentiWiki/Versioni2)]]

Il risultato era rappresentato dall’inclusione, nella pagina corrente, di una tabellina contenente le versioni specificate fra la prima e l’ultima riga. Ora, con la macro [[VersioniSupportate]], tutto è più semplice: basta include, fra i parametri della macro, l’elenco dei nomi in codice delle versioni supportate, come nel seguente esempio:

[[VersioniSupportate(hardy gutsy feisty)]]

Ecco una dimostrazione grafica:

Poichè l’accesso ai sorgenti delle macro non è libero, ho pensato di pubblicare qui tutto il codice modificato insieme con Leo.

Ecco il file Indice.py:

# -*- coding: iso-8859-1 -*-

"""

MoinMoin – TableOfContents Macro

Optional integer argument: maximal depth of listing.

@copyright: 2000, 2001, 2002 by Jürgen Hermann <jh@web.de>

@license: GNU GPL, see COPYING for details.

"""

import re, sha

from MoinMoin import config, wikiutil

#Dependencies = ["page"]

Dependencies = ["time"] # works around MoinMoinBugs/TableOfContentsLacksLinks

# from macro Include (keep in sync!)

_arg_heading = r'(?P<heading>,)\s*(|(?P<hquote>[\’"])(?P<htext>.+?)(?P=hquote))’

_arg_level = r’,\s*(?P<level>\d*)’

_arg_from = r'(,\s*from=(?P<fquote>[\’"])(?P<from>.+?)(?P=fquote))?’

_arg_to = r'(,\s*to=(?P<tquote>[\’"])(?P<to>.+?)(?P=tquote))?’

_arg_sort = r'(,\s*sort=(?P<sort>(ascending|descending)))?’

_arg_items = r'(,\s*items=(?P<items>\d+))?’

_arg_skipitems = r'(,\s*skipitems=(?P<skipitems>\d+))?’

_arg_titlesonly = r'(,\s*(?P<titlesonly>titlesonly))?’

Page 1 of 4 | Next page