Le macro

Le macro consentono di inserire nuove funzionalità nelle normali pagine wiki; l'unica cosa che le rende speciali è che contengono delle macro. Se modifichi pagine tipo ModificheRecenti o InformazioniSulSistema, potrai vedere cosa si intende.

Per ulteriori informazioni sulle possibili formattazioni, vedi AiutoSuModificaPagina.

Macro di ricerca

MoinMoin utilizza un nuovo motore di ricerca, che ti permette di svolgere ricerche sofisticate utilizzando sia il riquadro di ricerca interattiva sia una qualsiasi delle macro di ricerca. Per un ulteriore aiuto, vedi AiutoSuRicerche.

Macro


Descrizione

Esempio

<<AdvancedSearch>>


Crea un dialogo di ricerca avanzata nella pagina

Vedi CercaPagina

<<TitleSearch>>


Crea un riquadro di ricerca nella pagina che cerca tra i titoli delle pagine

Vedi CercaPagina

<<FullSearch>>


Crea un riquadro di ricerca nella pagina che cerca nel contenuto delle pagine

Vedi CercaPagina

<<FullSearch()>>


Elenca le pagine che contengono il titolo della pagina (come cliccando sul titolo della pagina)

Vedi la pagina CategoriaCategoria

<<FullSearch(text)>>


Elenca le pagine che contengono il termine ricercato

<<FullSearchCached(text)>>


Lavora come la macro FullSearch ma crea una cache statica dei risultati. Utilizzala se preferisci cercare velocemente su un risultato aggiornato

<<GoTo>>


Vai direttamente alla pagina indicata

Vedi CercaPagina

<<PageList(Help)>>


Elenca le pagine il cui titolo corrisponde al termine ricercato

Vedi AiutoIndice

Macro


Descrizione

Esempio

<<RecentChanges>>


Elenco di pagine modificate di recente

Vedi ModificheRecenti

<<TitleIndex>>


Indice di tutti i titoli delle pagine

Vedi IndiceDeiTitoli

<<WordIndex>>


Indice di tutte le parole nei titoli delle pagine

Vedi IndicePerParola

<<WantedPages>>


Elenco di pagine che non esistono

Vedi PagineAssenti

<<OrphanedPages>>


Elenco di pagine non referenziate da altre pagine

Vedi PagineOrfane

<<AbandonedPages>>


Elenca le pagine non modificate da più tempo

Vedi PagineAbbandonate

<<RandomPage>>


Collegamento a una pagina a caso

AideDesVerrousD'Édition

<<RandomPage(#)>>


Collegamenti a un dato numero di pagine a caso

Due pagine a caso:

<<TableOfContents([maxdepth])>>


Visualizza un indice locale, limitato ad una profondità massima (maxdept)

Vedi a inizio pagina

<<Anchor(anchorname)>>


Macro per inserire "ancore" in una pagina

#qui

<<Navigation(children[,maxdepth])>>


Macro che elenca tutte le pagine che discendono da una pagina

Vedi a inizio pagina

<<Navigation(siblings[,maxdepth])>>


Navigazione rapida tra pagine sullo stesso livello

Vedi /MailTo

<<Navigation(slideshow)>>


Crea un collegamento per passare da modalità "Slide show" a modalità "Wiki" e uno per far partire la presentazione

Vedi AiutoSuSlideShow

<<Navigation(slides)>>


Mostra i collegamenti a prima/precedente/prossima/ultima slide

Vedi AiutoSuSlideShow

<<AttachInfo>>


Mostra il numero di file allegati alla pagina attuale

Vedi AiutoSuAzioni/AllegaFile

<<AttachInfo(page)>>


Mostra il numero di file allegati alla pagina indicata

Vedi AiutoSuAzioni/AllegaFile

<<AttachList(pagename,mimetype)>>


Mostra l'elenco dei file allegati

Vedi AiutoSuAzioni/AllegaFile

Informazioni di sistema

Macro


Descrizione

Esempio

<<InterWiki>>


Elenco di tutti i nomi InterWiki conosciuti

InterWiki

<<SystemInfo>>


Informazioni sul wiki, sull'interprete Python e sul sistema ospite

InformazioniSulSistema

<<PageCount(exists)>>


Calcolo del numero di pagine attuali. Se viene utilizzato come argomento exists, verranno mostrate solo le pagine esistenti.

3444 pagine

<<PageSize>>


Elenca le dimensioni di tutte le pagine

Vedi PaginePerDimensione

<<StatsChart(type)>>


Mostra grafici statistici (attualmente sono definiti questi tipi: hitcounts, pagesize, useragents)

Vedi StatisticheEventi e sottopagine

<<SystemAdmin>>


Informazioni per gli amministratori del sistema

Devi essere un superuser per utilizzare questa macro

<<EditedSystemPages>>


Elenco di tutte le pagine di sistema modificate

  1. FrontPage
  2. LocalBadContent
  3. WikiSandBox
  4. 维基沙盘演练

Altre

Macro


Descrizione

Esempio

<<Action(action [,text])>>


Collega una pagina con un'azione valida, il testo opzionale può essere utilizzato come alias (i nomi delle azioni fanno distinzione tra maiuscole e minuscole)

<<Action(print, Stampa questa pagina)>>, Stampa questa pagina

<<ImageLink(image,target[,width=width[,height=height]][,alt=alttag])>>


Macro utilizzata per creare un collegamento che mostra un'immagine (può essere fornita sia come file allegato sia come URL) e la collega sia a un URL che a una pagina wiki. Volendo è possibile ridimensionarla. Nel caso non venga fornito il parametro "target" il collegamento punterà all'immagine stessa.

Vedi /AllegaImmagine

<<Icon(image)>>


Mostra icone di sistema

Vedi AiutoSuNavigazione

<<UserPreferences>>


Mostra un dialogo con le preferenze utente

Vedi PreferenzeUtente

<<UserPreferences(createonly)>>


Mostra un dialogo per la creazione utente

<<BR>>


Forza un a-capo

Prima riga
seconda riga

<<RandomQuote(pagename)>>


Seleziona una parte di testo a caso della pagina indicata o da FortuneCookies se questa viene omessa

Hint: Get email notification when this page changes, by clicking Subscribe.

<<Include(HelloWorld[,"heading"[,level]])>>


Include i conenuti di un'altra pagina

Per dettagli vedi /Includi

<<FootNote(text)>>


Aggiunge una nota a fondo pagina1 oppure mostra tutte le note a piè di pagina se non viene fornito un argomento

Vedi l'esempio a fine pagina

<<Date(timestamp)>>


Mostra la data come da impostazioni di sistema

2012-05-22

<<DateTime(timestamp)>>


Mostra data e ora2 come da impostazioni utente

2012-05-22 00:05:21

<<GetText(text)>>


Carica le traduzioni I18N (per utilizzi su pagine di Aiuto)

"EditText" viene tradotto in "EditText"

<<GetText2(,message,argument1,argument2,...)>>


Carica le traduzioni I18N (per utilizzi su pagine di aiuto o su pagine wiki con output generato) e sostituisce %s nel messaggio a seconda degli argomenti. Il primo carattere dell'argomento è utilizzato come separatore (in questo esempio: una virgola). Si può evitare il separatore utilizzando una barra rovescia.

"<<GetText2(,[You may not read %s],FooBar)>>" diventa "[You may not read FooBar]"

<<TeudView>>


Utile per wiki di sviluppo su intranet, per visualizzare documentazione pydoc formattata con un foglio di stile XSLT

Vedi http://twistedmatrix.com/wiki/python/TeudProject

<<MailTo(email)>>


Protegge il tuo indirizzo email dagli spam bot

Per dettagli vedi /MailTo

<<NewPage(PageTemplate,ButtonLabel,[ParentPage,@ME,@SELF] [,NameTemplate])>>


Permette agli utenti di creare con facilità (sotto-) pagine, usando la pagina PageTemplate come modello per una nuova pagina e la stringa NameTemplate come maschera per il nome.3 @ME viene utilizzato se si vuole creare la pagina come sotto pagina della pagina personale. @SELF viene utilizzato per creare una sotto pagina sotto la pagina dalla quale viene invocata la macro.

<<GetVal(NeatSnippets,regards)>>


Restituisce il corrispondente trovato nelle pagine dizionario.

Nel caso esistesse una pagina GermanDict contenente la voce Test, dovresti vederne la traduzione qui:

 <<MonthCalendar(,,12)>>


Mostra un calendario e crea i collegamenti per ogni giorno in sottopagine

Vedi /CalendarioMensile

  1. Il testo non può contenere alcuna formattazione wiki (1)

  2. "timestamp" può essere vuoto (ora attuale), un numero di secondi dal 1970 (unix timestamp) o una specifica temporale W3C ("2002-01-23T12:34:56"). Vedi RFC822, sez. 5. (2)

  3. NameTemplate viene formattato come time.strftime(), con l'eccezzione che %s viene sostituito da quanto inserito nel riquadro di modifica (che viene mostrato solo se richiesto). Se "NameTemplate" non viene specificato o è vuoto, viene sostituito di default con %s. (3)

Scrivere una macro

Creare un file python di nome MacroName.py nella directory data/plugin/macro. Assicurarsi che abbia un solo metodo chiamato execute(macro, arguments) che ne costituisce il punto di ingresso.

Tutte le istanze Macro hanno un oggetto request attraverso il quale accedere ai parametri e alle altre informazioni legate all'interazione con l'utente.

execute() dovrebbe utilizzare il formattatore per costruire una formattazione valida per il formato finale attuale. Nella maggior parte dei casi questo è HTML, per cui scrivere una macro che restituisce dell'HTML funzionerà nella maggior parte dei casi ma fallirà nel caso siano richiesti formati come XML o text/plain.

Per esempio, se nella pagina wiki c'è la seguente riga:

<<MacroName(arg1,arg2,arg3)>>

È possibile scrivere un file MacroName.py come questo:

   1 Dependencies = []
   2 def execute(macro, args):
   3     return macro.formatter.text("Ho ricevuto questi argomenti da una macro %s: %s" %
   4     (str(macro), args))
   5