Os parsers percorrem o conteúdo de um página para criar uma sequência de chamadas de formatação, que em sequência criam algum resultado legível. O MoinMoin escolherá o parser para determinada página utilizando 2 técnicas diferentes:
Instrução de Processamento FORMAT - ver AjudaComInstruçõesDeProcessamento
Uma PI #FORMAT pode ser utilizada para comunicar ao MoinMoin qual o parser a utilizar para todo o conteúdo da página. Por omissão, é o parser wiki. Exemplo: {{{#FORMAT cplusplus
... alguma fonte C++ ... }}}
Code Display Regions - ver AjudaNaFormatação
Com a utilização de code display regions, um parser pode ser aplicado em apenas uma parte de uma página (isto era um processador de regiões em versões anteriores do Moin). Pode especificar qul o parser a chamar utilizando um caminho do tipo bang na primeira linha. Um caminho do tipo bang é um conceito que surgiu dos scripts da linha de comando do Unix, que servem esse mesmo propósito: a primeira linha indica à shell qual o programa a utilizar para processar as restantes linhas do script. Exemplo (por favor, remova os espaços entre as chavetas para activar o parser):
{ { {#!CSV , a,b,c d,e,f } } }
Isto resulta na seguinte tabela:
Para mais informações sobre a formatação possível, consulte o tópico AjudaNaEdição.
ParserBase
O ParserBase é uma classe de ferramentas do parser utilizada para criar apresentações de fonte colorida. É facilmente extensível. O formatador de HTML converterá o código apresentado com a numeração de linhas adequada, se o navegador suportar DOM e JavaScript.
Um parser de coloração ParserBase aceita os seguintes argumentos para uma PI #FORMAT ou uma linha hashbang. Adicione esses argumentos depois do nome do parser (#FORMAT python start=10 step=10 numbers=on ou #!python numbers=off).
- numbers
- se o número de linhas for adicionada. Por omissão: 'on'. Valores possíveis: 'on', 'off' (sem numeração de linhas, mas o javascript adiciona-as), 'disable' (sem numeração de linhas de todo)
- start
- onde começar a numeração. Por omissão: 1
- step
- incremento ao número da linha. Por omissão: 1
O MoinMoin tem alguns exemplos de onde pode continuar:
python
Colora o código python. Não deriva do ParserBase, mas permite os mesmos argumentos que os parsers ParserBase.
def hello():
print "Hello World!"
def hello():
print "Hello World!"
cplusplus
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) está obsoleto, por isso utilize Calendar para
9 // definir o ano, mês e dia.
10 Calendar c = Calendar.getInstance();
11 // Converta cada argumento para int.
12 c.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
13 return c.getTime();
14 }
15 }
pascal
IRC
Coloca um registo de IRC numa tabela.
1 (23:18) < jroes> ah
2 (23:19) < jroes> hm, gosto da forma como as {{{ funcionam, mas esperava que as linhas se reajustassem
3 (23:21) -!- gpciceri [~gpciceri@host181-130.pool8248.interbusiness.it] has quit [Read error: 110 (Connection timed out)]
4 (23:36) < ThomasWal> podes tb escrever um parser ou um processador
5 (23:38) < jroes> posso?
6 (23:38) < jroes> é preciso alterar moin?
7 (23:38) < jroes> eu não posso alterá-lo :x
CSV
O parser CSV funciona com os valores separados por vírgulas, embora a vírgula seja normalmente e por omissão um ponto e vírgula. A primeira linha deve conter os títulos das colunas que são convertidas a negrito. Assim, caso não queira cabeçalhos nas tabelas, deixe a primeira linha vazia.
O caminho bang pode conter argumentos "-index", cada qual esconde uma determinada coluna do resultado, os índices de colunas são contados a partir do 1.
Qualquer um argumento non-whitespace que não comece com um - significa um separador. Isto permite-lhe utilizar vírgulas (,) em vez de ponto e vírgula (;), por exemplo. Se não indicar um separador, o ; será utilizado.
O código do parser CSV incluído actualmente é muito simples.
Tabelas de exemplo (por favor veja o texto sem formato desta página para a formatação utilizada):
MoinMoin 1.3 - a listar o histórico de patches:
Histórico da Versão do MoinMoin:
reStructuredText
XML/XSLT/DocBook
Ver AjudaComPáginasXml HelpOnXmlPages.
Outros Parsers
Para ver mais parsers e instruções de instalação, consulte o tópico Mercado de Parsers.