welcome: please sign in

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

location: AiutoSuProcessoriDiCodice

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.

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:

  1. 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 ...
  2. 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:

    a b c
    d e f

(!) Esistono due modi per risolvere il problema delle }}} annidate:

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

   1 def hello():
   2     print "Ciao mondo!"

def hello():
    print "Ciao mondo!"

def hello():
    print "Ciao mondo!"

C++

   1 int main(int argc, char **argv) {
   2   return 0;
   3 }

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

   1 function TRegEx.Match(const s:string):boolean;
   2 var
   3     l,i : integer;
   4 begin
   5     result := MatchPos(s,l,i);
   6 end;

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:

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:

patch-366 make _normalize_text public method Nir Soffer
patch-367 fixed failing test wikiutil: good system page names Nir Soffer
patch-368 Fixed DeprecationWarning in RandomPage.py and an unused import in twistedmoin.py Alexander Schremmer
patch-369 remove duplicate code in formatter.base Thomas Waldmann
patch-370 fixed long int in mig3 Thomas Waldmann
patch-371 fixed unicode error on eventlog Nir Soffer
patch-372 fixed util.web.makeQueryString and Page.url Nir Soffer
patch-373 fixed again non ascii http_referer Nir Soffer
patch-374 CSV.py supports different separators now Alexander Schremmer
patch-375 improved searchform behavior on Mozilla/Firefox Nir Soffer
patch-376 More correct script for actions menu init Nir Soffer

Cronologia versioni MoinMoin:

Version Date
0.11 2002-03-11
0.10 2001-10-28
0.9 2001-05-07
0.8 2001-01-23
0.7 2000-12-06
0.6 2000-12-04
0.5 2000-11-17
0.4 2000-11-01
0.3 2000-10-25
0.2 2000-08-26
0.1 2000-07-29

reStructuredText

Consultare /ReStructuredText.

XML/XSLT/DocBook

Consultare AiutoSuPagineXml.

Processori di codice aggiuntivi

Per maggiori informazioni, consultare MoinMoin:ParserMarket.