##master-page:HelpTemplate
##master-date:Unknown-Date
#format wiki
#language pt
<<TableOfContents>>

= Parsers =

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 [[WikiMoinMoin|MoinMoin]] escolherá o parser para determinada página utilizando 2 técnicas diferentes:
 1. '''Instrução de Processamento FORMAT''' - ver AjudaComInstruçõesDeProcessamento
   Uma PI `#FORMAT` pode ser utilizada para comunicar ao [[WikiMoinMoin|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++ ...
}}}

 1. '''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: {{{#!CSV ,
a,b,c
d,e,f
}}}

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 [[WikiMoinMoin|MoinMoin]] tem alguns exemplos de onde pode continuar:

== python ==

Colora o código python. Não deriva do Parser``Base, mas permite os mesmos argumentos que os parsers !ParserBase.

{{{#!python
def hello():
    print "Hello World!"
}}}

{{{#!python numbers=off
def hello():
    print "Hello World!"
}}}

{{{#!python numbers=disable
def hello():
    print "Hello World!"
}}}

== cplusplus ==

{{{#!cplusplus
int main(int argc, char **argv) {
  return 0;
}
}}}

== java ==

{{{#!java
import java.util.Date;
import java.util.Calendar;

public class IntDate
{
  public static Date getDate(String year, String month, String day)
    {
      // Date(int, int, int) está obsoleto, por isso utilize Calendar para
      // definir o ano, mês e dia.
      Calendar c = Calendar.getInstance();
      // Converta cada argumento para int.
      c.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
      return c.getTime();
    }
}
}}}

== pascal ==

{{{#!pascal
function TRegEx.Match(const s:string):boolean;
var
    l,i : integer;
begin
    result := MatchPos(s,l,i);
end;
}}}

== IRC ==

Coloca um registo de IRC numa tabela.

{{{#!irc
(23:18) <     jroes> ah
(23:19) <     jroes> hm, gosto da forma como as {{{ funcionam, mas esperava que as linhas se reajustassem
(23:21) -!- gpciceri [~gpciceri@host181-130.pool8248.interbusiness.it] has quit [Read error: 110 (Connection timed out)]
(23:36) < ThomasWal> podes tb escrever um parser ou um processador
(23:38) <     jroes> posso?
(23:38) <     jroes> é preciso alterar moin?
(23:38) <     jroes> eu não posso alterá-lo :x
}}}

<<Anchor(csvparser)>>
== 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: {{{#!CSV , -4

patch-366,make _normalize_text public method,Nir Soffer,2004-11-30 19:11:51 GMT
patch-367,fixed failing test wikiutil: good system page names,Nir Soffer,2004-11-30 19:15:52 GMT
patch-368,Fixed DeprecationWarning in RandomPage.py and an unused import in twistedmoin.py,Alexander Schremmer,2004-11-30 22:58:44 GMT
patch-369,remove duplicate code in formatter.base,Thomas Waldmann,2004-12-01 00:14:21 GMT
patch-370,fixed long int in mig3,Thomas Waldmann,2004-12-01 01:51:50 GMT
patch-371,fixed unicode error on eventlog,Nir Soffer,2004-12-01 14:46:29 GMT
patch-372,fixed util.web.makeQueryString and Page.url,Nir Soffer,2004-12-01 15:48:55 GMT
patch-373,fixed again non ascii http_referer,Nir Soffer,2004-12-01 18:55:28 GMT
patch-374,CSV.py supports different separators now,Alexander Schremmer,2004-12-01 23:46:17 GMT
patch-375,improved searchform behavior on Mozilla/Firefox,Nir Soffer,2004-12-02 04:57:06 GMT
patch-376,More correct script for actions menu init,Nir Soffer,2004-12-02 05:07:58 GMT
}}}
Histórico da Versão do MoinMoin: {{{#!CSV -3
Version;Date;HIDDEN!
0.11;2002-03-11;Revision 1.151
0.10;2001-10-28;Revision 1.134
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 ==

Ver /ReStructuredText

== XML/XSLT/DocBook ==

Ver AjudaComPáginasXml HelpOnXmlPages.

== Outros Parsers ==

Para ver mais parsers e instruções de instalação, consulte o tópico [[MoinMoin:ParserMarket|Mercado de Parsers]].
