AiutoContenuti > AiutoPerUtenti > AiutoSuModificaPagina > AiutoSuProcessoriDiCodice
Processori di codice
Oltre alla marcatura predefinita di MoinMoin, esistono diversi processori che consentono di interpretare il contenuto di una pagina o parte del contenuto in modo differente. Un wiki MoinMoin utilizza solitamente il processore predefinito, come descritto in AiutoSuFormattazione.
Sommaire
Come viene applicata la formattazione
I processori di codice elaborano il contenuto di una pagina per creare una serie di chiamate al formattatore il quale crea a sua volta un output leggibile. MoinMoin sceglie il processore di codice utilizzando due tecniche:
Istruzione di elaborazione FORMAT (consultare AiutoSuIstruzioniDiElaborazione)
Un'istruzione di elaborazione #FORMAT può essere usata per indicare a MoinMoin quale processore di codice usare per l'intera pagina. Quello predefinito è quello wiki, per esempio:
#FORMAT cplusplus ... some C++ source ...
Regioni di visualizzazione di codice (consultare AiutoSuFormattazione)
Attraverso l'uso di regioni di visualizzazione di codice, un processore di codice può essere applicato a una sola parte di una pagina. È possibile quale processore di codice usare utilizzando un cosiddetto percorso bang (hashbang) all'inizio della pagina. Un percorso bang è un concetto derivato dagli script a riga di comando Unix, dove svogle la stessa funzione: la prima riga indica quale programma avviare per elaborare le restanti righe dello script. Per esempio, il codice:
{{{#!CSV , a,b,c d,e,f }}}
crea la tabella:
Esistono due modi per risolvere il problema delle }}} annidate:
- Usare più di tre parentesi graffe per iniziare/finire la sezione del processore di codice (quello che viene usato non deve essere compreso nella sezione), per esempio:
{{{{ {{{ ... }}} }}}}
- Usare tre parentesi graffe più una stringa unica:
{{{asdfghj {{{ ... }}} asdfghj}}}
Per maggiori informazioni sulla marcatura, consultare AiutoSuModificaPagina.
ParserBase
ParserBase è una classe usata per creare visualizzazioni colorate di codice sorgente ed è facilmente estendibile. Il formattatore HTML visualizzerà quel codice con la possibilità di attivare/disattivare i numeri riga (se il browser supporto DOM e JavaScript).
Un processore ParserBase è in gradi di comprendere i seguenti argomenti nella riga #FORMAT o nello hashbang. Aggiungere uno dei seguenti argomenti dopo il nome del processore di codice (#FORMAT python start=10 step=10 numbers=on oppure #!python numbers=off).
- numbers
Indica se aggiungere i numeri riga, il valore predefinito è "on". I possibili valori sono: "on", "off" (nessun numero, ma viene usato JavaScript), "disable" (nessun numero).
- start
- Indica dove iniziare la numerazione, il valore predefinito è "1".
- step
- Incremento alla numerazione, il valore predefinito è "1".
MoinMoin dispone di alcuni esempi:
Creole
Consultare AiutoSuSintassiCreole.
Python
Colora il codice Python. Non è derivato da ParserBase, ma accetta gli stessi argomenti dei processori basati su ParserBase
def hello():
print "Ciao mondo!"
def hello():
print "Ciao mondo!"
C++
Java
1 import java.util.Date;
2 import java.util.Calendar;
3
4 public class IntDate
5 {
6 public static Date getDate(String year, String month, String day)
7 {
8 // Date(int, int, int) has been deprecated, so use Calendar to
9 // set the year, month, and day.
10 Calendar c = Calendar.getInstance();
11 // Convert each argument to int.
12 c.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
13 return c.getTime();
14 }
15 }
Pascal
IRC
Inserisce la registrazione IRC in una tabella.
1 (23:18) < jroes> ah
2 (23:21) -!- gpciceri [~gpciceri@host181-130.pool8248.interbusiness.it] has quit [Read error: 110 (Connection timed out)]
3 (23:36) < ThomasWal> you could also write a parser or processor
4 (23:38) < jroes> i could?
5 (23:38) < jroes> would that require modification on the moin end though?
6 (23:38) < jroes> i cant change the wiki myself :x
Il formato della registrazione è quello di IRSSI, un cline IRC molto famoso, ma dovrebbe funzionare con le registrazioni di molti client IRC.
CSV
Il processore CSV lavoro con i valori separati da virgole, anche se la virgola ora risulta essere un punto e virgola. La prima riga dovrebbe contenere i nomi delle colonne, che vengono rese in grassetto, così per non avere le intestazioni delle tabelle, lasciare la prima riga vuota.
Il percorso bang può contenere i seguenti argomenti:
delimiter o separator: delimiter=, imposta il delimitatore alla virgola
quotechar: quotechar=" consente la quotatura tramite le doppie virgolette
show: elenco di colonne separate da virgola da mostrare
hide: elenco di colonne separate da virgola da nascondere
autofilter: elenco di colonne separate da virgola a cui aggiungere filtri automatici
name: nome dell'insieme di dati
link: elenco di colonne separata da virgola nella forma di http://example.com/link testo descrizione, piuttosto che solo testo
static_cols, static_vals: colonne (e rispettivi valori) aggiunte a ogni record
-N (dove N è un numero): nasconde la colonna N (utile quando i nomi delle colonne sono omessi)
Il processore supporta anche la vecchia sintassi, anche se deprecata.
Tabelle di esempio (consultare il testo grezzo per vedere la marcatura usata):
MoinMoin 1.3, scorcio della cronologia della patch:
Cronologia versioni MoinMoin:
reStructuredText
Consultare /ReStructuredText.
XML/XSLT/DocBook
Consultare AiutoSuPagineXml.
Processori di codice aggiuntivi
Per maggiori informazioni, consultare ParserMarket.