Help:Extension:ParserFunctions/pt-br

From MediaWiki.org
Jump to: navigation, search
PD Nota importante: Ao editar esta página você concorda em disponibilizar as suas contribuições em domínio público. Caso você não queira fazer isso ou não possa fazer isso por causa de restrições de licenças, por favor, não edite. Esta página é parte do projeto Public Domain Help Pages, a qual poderá ser livremente copiada em instalações novas ou mesmo distribuída juntamente com o software MediaWiki. PD

Extensão:Funções Sintáticas[edit | edit source]

Se a extensão ParserFunctions foi instalada na sua wiki, ela fornece onze funções adicionais ao analisador sintático, que suplementam as palavras mágicas já presentes no MediaWiki. Todas as funções fornecidas pela extensão têm a forma:

{{#função: argumento 1 | argumento 2 | argumento 3 ...}}

#expr[edit | edit source]

Tipo Operadores
Agrupamento (parênteses) ( )
Números 1234.5 2.4E5 e (2.718) pi (3.142)
Lógicos or
and
= != <> > < <= >=
Arredondamento round
Binários + - mod
* / div
^
Unários not ceil trunc floor abs ln sin cos tan acos asin atan
e + -
{{#expr: expressão matemática}}

Esta função calcula a expressão matemática e retorna o resultado. Portanto:

{{#expr: 1 + 1 }} → 2

Os operadores matemáticos disponíveis estão listados na tabela da direita, por ordem crescente de precedência. Para mais detalhes sobre cada operador, consulte MetaWiki:Help:Calculation .

A precisão e formato do resultado variam de acordo com o sistema operacional do servidor que está executando o MediaWiki e com o formato numérico da língua do site.

Nos operadores de álgebra booleana, o número zero assume o valor lógico «falso» (0). Qualquer outro número, positivo ou negativo, assume o valor lógico «verdadeiro» (1).

Assim, os seguintes exemplos demonstram uma tabela-verdade para o operador booleano E (AND):

{{#expr: 0 and 0 }} → 0      (falso e falso = falso)
{{#expr: 0 and 1 }} → 0      (falso e verdadeiro = falso)
{{#expr: -1 and 0 }} → 0      (verdadeiro e falso = falso)
{{#expr: 2 and -2 }} → 1      (verdadeiro e verdadeiro = verdadeiro)

Uma expressão de entrada vazia retorna uma expressão de saída vazia:

{{#expr: }} →

Expressões inválidas retornam uma ou várias mensagens de erro, que podem ser apanhadas usando a função #iferror:

{{#expr: 1+ }} → Expression error: Missing operand for +.
{{#expr: 1 xpto 2 }} → Expression error: Unrecognized word "xpto".

Aviso Aviso: Algumas expressões podem resultar em erros de ponto flutuante (floating-point) quando são usados números muito grandes ou muito pequenos:

{{#expr: 20060618093259 mod 10000}} → 3259

retorna 3259 na maioria das vezes, mas ocasionalmente retorna -6357. Isto varia com as especificações e a configuração do servidor que executa a wiki (ver bug 6356).

#if[edit | edit source]

{{#if: expressão | valor se verdadeiro | valor se falso}}

Esta função determina se a expressão tem conteúdo ou está vazia. Se tem conteúdo, retorna o valor se verdadeiro. Se está vazia, ou só contém caracteres em branco (espaços, linhas novas, etc.), retorna o valor se falso.

{{#if: texto | verdadeiro | falso}} → verdadeiro
{{#if: | verdadeiro | falso}} → falso
{{#if:       | verdadeiro | falso}} → falso
{{#if:


| verdadeiro | falso}}
 → falso

A expressão é sempre interpretada como texto puro, portanto expressões matemáticas não são calculadas:

{{#if: 1 = 2 | verdadeiro | falso}} → verdadeiro

Qualquer um dos valores a retornar, ou ambos, podem ser omitidos:

{{#if: texto | verdadeiro}} → verdadeiro
{{#if: texto | | falso}} →
{{#if: | verdadeiro}} →

Também é possível utilizar funções #if aninhadas, ou seja, testar uma dentro da outra. Isso pode ser feito mais ou menos desta forma:

{{#if: texto1 | {{#if: texto2 | verdadeiro | falso1}} | falso2}}

Para mais exemplos do uso desta função, consulte funções do analisador sintático nas predefinições.

#ifeq[edit | edit source]

{{#ifeq: expressão 1 | expressão 2 | valor se verdadeiro | valor se falso}}

Esta função determina se as duas expressões são idênticas.

Se ambas resultarem em valores numéricos válidos, são comparadas numericamente:

{{#ifeq: 01 | 1 | verdadeiro | falso}} → verdadeiro
{{#ifeq: 0 | -0 | verdadeiro | falso}} → verdadeiro
{{#ifeq: 1e3 | 1000 | verdadeiro | falso}} → verdadeiro
{{#ifeq: {{#expr:10^3}} | 1000 | verdadeiro | falso}} → verdadeiro

Caso contrário, são comparadas como texto:

{{#ifeq: "01" | "1" | verdadeiro | falso}} → falso
{{#ifeq: "0" | "-0" | verdadeiro | falso}} → falso
{{#ifeq: 10^3 | 1000 | verdadeiro | falso}} → falso

A comparação de texto é sensível a maiúsculas e minúsculas:

{{#ifeq: a | a | verdadeiro | falso}} → verdadeiro
{{#ifeq: a | A | verdadeiro | falso}} → falso
{{#ifeq: [[link]] | [[link]] | verdadeiro | falso}} → verdadeiro
{{#ifeq: [[link]] | [[Link]] | verdadeiro | falso}} → falso

Se uma expressão resulta em texto e a outra num número, é sempre retornado o valor se falso:

{{#ifeq: 1 | "1" | verdadeiro | falso}} → falso
{{#ifeq: {{#expr: 1}} | "1" | verdadeiro | falso}} → falso
Aviso Aviso: O conteúdo no interior de cada elemento sintático, (como <nowiki>), é temporariamente substituído por um código único. Isto afeta as comparações:
{{#ifeq: <nowiki>texto</nowiki> | <nowiki>texto</nowiki> | verdadeiro | falso}} → falso
{{#ifeq: <math>texto</math> | <math>texto</math> | verdadeiro | falso}} → falso
{{#ifeq: {{#tag:math|texto}} | {{#tag:math|texto}} | verdadeiro | falso}} → falso
{{#ifeq: [[link]] | [[link]] | verdadeiro | falso}} → verdadeiro

Se os dois textos que são comparados forem chamadas idênticas para uma mesma predefinição que contenha elementos sintáticos, então o resultado é verdadeiro. Se forem chamadas para duas predefinições distintas o resultado é falso, mesmo que o conteúdo destas seja idêntico.

#iferror[edit | edit source]

{{#iferror: expressão | valor se verdadeiro | valor se falso}}

Esta função determina se ocorre um erro no cálculo da expressão. Se ocorrer um erro, retorna o valor se verdadeiro. Se não, retorna o valor se falso.

{{#iferror: {{#expr: 1 + 2 }} | verdadeiro | falso}} → falso
{{#iferror: {{#expr: 1 + X }} | verdadeiro | falso}} → verdadeiro
porque {{#expr: 1 + X }} → Expression error: Unrecognized word "x".

Um erro ocorre quando o resultado do cálculo contém um objeto HTML com class="error". Este objeto pode ser gerado por outras funções do analisador sintático, como #expr, #time e #rel2abs, por erros em predefinições como ciclos e recursão, ou por outros erros failsoft detectados pelo analisador sintático.

Qualquer um dos valores a retornar, ou ambos, podem ser omitidos. Se for omitido o valor se falso e não ocorrer um erro, é retornado o resultado da expressão.

{{#iferror: {{#expr: 1 + 2 }} | verdadeiro}} → 3
{{#iferror: {{#expr: 1 + X }} | verdadeiro}} → verdadeiro
{{#iferror: <strong class="error">a</strong> | verdadeiro}} → verdadeiro

Se também for omitido o valor se verdadeiro e ocorrer um erro, é retornada uma expressão vazia:

{{#iferror: {{#expr: 1 + 2 }} }} → 3
{{#iferror: {{#expr: 1 + X }} }} →
{{#iferror: <strong class="error">a</strong> }} →

#ifexpr[edit | edit source]

{{#ifexpr: expressão matemática | valor se verdadeiro | valor se falso}}

Esta função determina se a expressão matemática é diferente de zero. Primeiro, calcula a expressão da mesma forma que #expr acima, com os mesmos operadores. O resultado numérico do cálculo é então avaliado com lógica booleana. Portanto, se for diferente de zero, retorna valor se verdadeiro. Se for zero, retorna valor se falso.

{{#ifexpr: 0 - 1 | verdadeiro | falso}} → verdadeiro
{{#ifexpr: 0 + 0 | verdadeiro | falso}} → falso
{{#ifexpr: 0 + 1 | verdadeiro | falso}} → verdadeiro

Uma expressão de entrada vazia retorna o valor se falso:

{{#ifexpr: | verdadeiro | falso}} → falso

O inverso desta função pode ser obtido com #ifeq, comparando #expr com zero:

{{#ifeq: {{#expr: 0 - 1}} | 0 | verdadeiro | falso}} → falso
{{#ifeq: {{#expr: 0 + 0}} | 0 | verdadeiro | falso}} → verdadeiro
{{#ifeq: {{#expr: 0 + 1}} | 0 | verdadeiro | falso}} → falso

exceto nos casos em que a expressão de entrada esteja vazia ou seja incorreta (uma mensagem de erro é tratada como um trecho de texto normal; não é igual a zero, portanto resulta em valor se verdadeiro).

Qualquer um dos valores de retorno, ou ambos, podem ser omitidos. Se o valor de retorno for omitido, é retornada uma expressão vazia:

{{#ifexpr: 1 > 0 | verdadeiro }} → verdadeiro
{{#ifexpr: 1 < 0 | verdadeiro }} →
{{#ifexpr: 1 > 0 | | falso}} →
{{#ifexpr: 1 < 0 | | falso}} → falso
{{#ifexpr: 1 > 0 }} →
{{#ifexpr: 1 < 0 }} →

Alguns resultados inesperados:

{{#ifexpr: -0 | verdadeiro | falso}} → falso
{{#ifexpr: 1 * 0 | verdadeiro | falso}} → falso
{{#ifexpr: -1 * 0 | verdadeiro | falso}} → falso

#ifexist[edit | edit source]

{{#ifexist: página | valor se verdadeiro | valor se falso}}

Esta função determina se a página especificada existe na wiki.

A função retorna o valor se verdadeiro se a página existir, quer esta tenha conteúdo, esteja aparentemente vazia (isto é, contenha metadados como links de categorias ou palavras mágicas, mas nenhum conteúdo visível), esteja efetivamente vazia, ou seja uma página de redirecionamento. Só para páginas cujo link estaria a vermelho é retornado o valor se falso, incluindo páginas que já existiram mas tenham sido eliminadas.

{{#ifexist: Help:Extension:ParserFunctions/pt-br | verdadeiro | falso}} → verdadeiro
{{#ifexist: XXXHelp:Extension:ParserFunctions/pt-brXXX | verdadeiro | falso}}falso

A função retorna o valor se verdadeiro para mensagens de sistema que tenham sido alteradas na wiki e para páginas especiais que existam.

{{#ifexist: MediaWiki:Copyright | verdadeiro | falso}} → verdadeiro (porque MediaWiki:Copyright foi alterada)
{{#ifexist: Special:Watchlist | verdadeiro | falso}} → verdadeiro
{{#ifexist: Special:CheckUser | verdadeiro | falso}} → verdadeiro (porque a extensão CheckUser foi instalada na wiki)

A função #ifexist é considerada «exigente» e só um número limitado destas funções pode ser colocado numa página (incluindo funções dentro de páginas transcluídas nessa página). Quando este número é excedido, a página é colocada na categoria Category:Páginas com demasiadas chamadas a funções exigentes, e quaisquer funções #ifexist: que ainda serão executadas, retornam automaticamente o valor se falso quer a sua página alvo exista ou não.

Tools.svg Dica para wiki admins: Configure o número máximo de funções exigentes permitidas por página, na variável $wgExpensiveParserFunctionLimit.

Se uma página verifica a existência de outra página alvo usando #ifexist:, então a página que verifica aparece na lista Special:Páginas afluentes da página alvo. Portanto, se o código {{#ifexist:Xpto}} existir ao vivo nesta página (que se chama «Help:Extension:ParserFunctions/pt-br»), então Special:Páginas afluentes/Xpto listará «Help:Extension:ParserFunctions/pt-br».

Nas wikis que usam um repositório compartilhado de arquivos multimídia, #ifexist pode ser usado para verificar se um ficheiro foi carregado no repositório, mas não na própria wiki:

{{#ifexist: File:Example-pt.png | verdadeiro | falso}}verdadeiro
{{#ifexist: Image:Example-pt.png | verdadeiro | falso}}verdadeiro
{{#ifexist: Media:Example-pt.png | verdadeiro | falso}}verdadeiro

Se tiver sido criada uma página de descrição do arquivo, é retornado o valor se verdadeiro para todas as entradas acima.

#rel2abs[edit | edit source]

{{#rel2abs: deslocamento relativo}}
{{#rel2abs: deslocamento relativo | endereço base}}

Esta função cria um endereço completo, para uma página ou para um arquivo, com base num deslocamento relativo a partir de um endereço base. No parâmetro de entrada deslocamento relativo, os seguintes são válidos:

. - o nível actual
.. - subir um nível
/xpto - descer um nível para o sub-diretório /xpto

Assim:

{{#rel2abs: /quatro | Help:Um/dois/três}} → Help:Um/dois/três/quatro
{{#rel2abs: ./quatro | Help:Um/dois/três}} → Help:Um/dois/três/quatro
{{#rel2abs: ../quatro | Help:Um/dois/três}} → Help:Um/dois/quatro
{{#rel2abs: ../. | Help:Um/dois/três}} → Help:Um/dois

Se o parâmetro endereço base não for especificado, será usado o nome completo da página:

{{#rel2abs: /quatro}} → Help:Extension:ParserFunctions/pt-br/quatro

Sintaxe inválida, como /. ou /./, é ignorada.

{{#rel2abs: ../quatro/. | Help:Um/dois/três}} → Help:Um/dois/quatro
{{#rel2abs: ../.././quatro | Help:Um/dois/três}} → Help:Um/quatro
{{#rel2abs: ../../../quatro | Help:Um/dois/três}} → quatro
{{#rel2abs: ../../../../quatro | Help:Um/dois/três}} → Error: Invalid depth in path: "Help:Um/dois/três/../../../../quatro" (tried to access a node above the root node).

#switch[edit | edit source]

{{#switch: texto
 | caso = valor
 | caso = valor
   ...
 | valor por omissão
}}

Esta função faz uma comparação entre texto e cada um dos casos de teste, e retorna o valor associado ao caso que seja igual ao texto:

{{#switch: 1 | 1 = um | 2 = dois | outro}} → um

Valor por omissão[edit | edit source]

Se não for encontrada nenhuma correspondência, é retornado o valor por omissão:

{{#switch: 3 | 1 = um | 2 = dois | outro}} → outro

Nesta forma, o valor por omissão não pode conter um sinal de igual (=) e tem de ser o último parâmetro:

{{#switch: 3 | 1 = um | 2 = dois | ou=tro}} →
{{#switch: 3 | outro | 1 = um | 2 = dois}} →

Em alternativa, o valor por omissão pode ser declarado explicitamente usando #default como caso.

{{#switch: texto
 | caso = valor
 | caso = valor
   ...
 | #default = valor por omissão
}}

Desta forma, pode ser colocado em qualquer posição:

{{#switch: 3 | #default = outro | 1 = um | 2 = dois}} → outro

Se o valor por omissão for omitido e não for encontrada nenhuma correspondência, não é retornado nenhum valor:

{{#switch: 3 | 1 = um | 2 = dois}} →

Agrupamento dos valores[edit | edit source]

Quando vários casos têm o mesmo valor, em vez de repetir esse valor para todos eles, é possível agrupá-los, da seguinte forma:

{{#switch: texto
 | caso1 = valor1
 | caso2
 | caso3 = valor2
 | caso4
 | caso9
 | caso6 = valor3
 | valor por omissão
}}

Aqui, os casos 2 e 3 retornam o valor2; os casos 4, 9 e 6 retornam o valor3. Por exemplo:

{{#switch: 9 | 1 = um | 2 | 3 = dois | 4 | 9 | 6 = três | valor por omissão}} → três

Características da comparação[edit | edit source]

Tal como #ifeq, a comparação é feita numericamente se tanto o texto como o caso forem números. Se não, são comparados como texto, sensível a maiúsculas e minúsculas:

{{#switch: a | a = A | b = B | C}} → A
{{#switch: A | a = A | b = B | C}} → C
{{#switch: 0 + 1 | 1 = um | 2 = dois | outro}} → outro
{{#switch: {{#expr: 0 + 1}} | 1 = um | 2 = dois | outro}} → um

Um caso pode ser o vazio:

{{#switch: | = vazio | 1 = um | dois}} → vazio

Se dois ou mais casos forem iguais, só o primeiro será retornado:

{{#switch: a | a = A | a = B | C}} → A

Uso de sinais de igual no caso[edit | edit source]

Os casos não podem conter sinais de igual (=). No entanto, é possível inserir sinais de igual usando uma predefinição {{=}} que contenha unicamente um sinal de igual:

{{#switch: 1=2
 | 1=2 = simples
 | 1<nowiki>=</nowiki>2 = nowiki
 | 1&#61;2 = html
 | 1{{=}}2 = predefinição
 | outro
}} → predefinição

Nota Nota:

Um exemplo simples do uso real desta função pode ser encontrado em Template:NBA color. Um exemplo complexo pode ser encontrado em Template:Extension.

#time[edit | edit source]

Código Descrição Resultado actual
Ano
Y Ano com 4 algarismos. 2013
y Ano com 2 algarismos. 13
L 1 se o ano é bissexto (Leap), 0 se não. 0
o ¹ Ano no ISO-8601. ² 2013 ³

¹ Requer o PHP 5.1.0 ou posterior e a rev:45208 do MediaWiki.
² Tem o mesmo valor que Y, exceto quando o número ISO da semana (W) pertence ao ano anterior ou ao seguinte, em que é usado esse ano e não Y.
³ Resulta literalmente no símbolo o se ¹ não for satisfeita.

Mês
n Mês, sem zeros à esquerda. 8
m Mês, com zeros à esquerda. 08
M Nome abreviado do mês, na língua do site. Aug
F Nome completo do mês, na língua do site. August
xg Antes de uma formatação para o mês (n, m, M, F), produzir o nome completo do mês na forma genitiva se a língua do site fizer distinção entre as formas genitiva e nominativa. Em polaco:

(nominativa) {{#time:d F Y|20 June 2010}} → 20 czerwiec 2010

(genitiva) {{#time:d xg Y|20 June 2010}} → 20 czerwca 2010

Semana
W Número da semana no ISO-8601, com zeros à esquerda. 34
Dia
j Dia do mês, sem zeros à esquerda. 21
d Dia do mês, com zeros à esquerda. 21
z Dia do ano (1 de Janeiro = 0).
Nota Nota:
Para obter o dia do ano no padrão ISO, adicionar 1.
232
D Nome abreviado do dia. Raramente internacionalizado. Wed
l Nome completo do dia. Raramente internacionalizado. Wednesday
N Dia da semana no ISO-8601 (Seg.-Feira = 1, Domingo = 7). 3
w Número do dia da semana (Domingo = 0, Sábado = 6). 3
Hour
a "am" durante a manhã (00:00:00 → 11:59:59), "pm" à tarde e noite (12:00:00 → 23:59:59) am
A Versão em maiúsculas de a acima. AM
g Hora no formato 12 horas, sem zeros à esquerda. 12
h Hora no formato 12 horas, com zeros à esquerda. 12
G Hora no formato 24 horas, sem zeros à esquerda. 0
H Hora no formato 24 horas, com zeros à esquerda. 00
Minutos e segundos
i Minutos após a hora, com zeros à esquerda. 50
s Segundos após o minuto, com zeros à esquerda. 31
U Segundos desde 1 de Janeiro de 1970 00:00:00 GMT. 1377046231
Miscellaneous
L 1 se este ano é bissexto no calendário Gregoriano, 0 se não. 0
t Número de dias no mês presente. 31
c Data no formato ISO-8601, equivalente a Y-m-dTH:i:s+00:00. 2013-08-21T00:50:31+00:00
r Data no formato RFC 2822, equivalente a D, j M Y H:i:s +0000, com o nome do dia e o nome do mês não internacionalizados. Wed, 21 Aug 2013 00:50:31 +0000
Calendários não Gregorianos
Iraniano
xij Dia do mês. 30
xiF Nome completo do mês. Mordad
xin Número do mês. 5
xiY Ano completo. 1392
Hebraico
xjj Dia do mês. 15
xjF Nome completo do mês. Elul
xjx Forma genitiva do nome do mês. Elul
xjn Número do mês. 12
xjY Ano completo. 5773
Solar Tailandês
xkY Ano completo. 2556
Formatação
xn Formatar o próximo código numérico como um número ASCII. Em Hindú, {{#time:H, xnH}} produz ०६, 06
xN Como xn, mas ativa e desativa conforme é repetido, e dura até ao fim do texto ou até que seja encontrado xN no texto.
xr Formatar o próximo número como um número romano. Só funciona para números até 3000. {{#time:xrY}} → MMXIII
{{#time: formato}}
{{#time: formato | data/hora}}

Esta função formata uma data e/ou hora de acordo com a sintaxe fornecida. Por omissão, será usada a palavra mágica {{CURRENTTIMESTAMP}}, isto é, a hora da última vez em que a página foi apresentada em HTML.

{{#time: d-m-Y }} → 21-08-2013
{{#time: d M [[Y]] }} → 21 Aug 2013

Pode ser especificado um objeto data/hora:

{{#time: d-m-Y | 2001-01-01}} → 01-01-2001

A lista de códigos de formatação válidos é apresentada na tabela da direita. Qualquer caracter no texto de formatação que não seja reconhecido, é passado inalterado para o resultado. Existem duas formas de escapar caracteres no texto de formatação, impedindo que sejam interpretados:

  • Uma barra invertida (\) seguida de um caracter de formatação são interpretados como o caracter literal, sem formatação.
{{#time: j de F de Y}} → 21 21UTC August 21UTC 2013
{{#time: j \de F \de Y}} → 21 dUTC August dUTC 2013
  • Caracteres envoltos em aspas duplas (") são considerados caracteres literais e não caracteres de formatação e as aspas são removidas no resultado. Adicionalmente, o dígrafo (dois caracteres interpretados como um só) xx é interpretado como o carácter literal x.
{{#time: [[Y (ano)]] }} → 2013 (am82013)
{{#time: [[Y "(ano)"]] }} → 2013 (ano)
{{#time: i's" }} → 50'31"

O objeto data/hora pode ter qualquer formato aceito pela função strtotime() do PHP. São aceitos objetos absolutos (20 December 2000) e relativos (+20 hours).

{{#time: r | now}} → Wed, 21 Aug 2013 00:50:31 +0000
{{#time: r | +2 hours}} → Wed, 21 Aug 2013 02:50:31 +0000
{{#time: r | now + 2 hours}} → Wed, 21 Aug 2013 02:50:31 +0000

Se calculou uma timestamp do Unix, pode-se usá-la em cálculos de datas precedendo-a com uma arroba @.

{{#time: U | now }} → 1377046231
{{#time: r | @1377046231}} → Wed, 21 Aug 2013 00:50:31 +0000

Aviso Aviso: A gama de datas aceitas é desde 1 de Janeiro de 0100 até 31 de Dezembro de 9999. Valores fora desta gama serão interpretados incorretamente:

{{#time: d F Y | 15 April 0099 }} → 15 April 0099
{{#time: d F Y | 15 April 10000 }} → Error: Invalid time.

Datas absolutas podem ser especificadas de forma completa ou parcial; a função preenche as partes que não tenham sido especificadas usando os valores atuais:

{{#time: Y | January 1 }} → 2013

Um número de quatro algarismos é interpretado como horas e minutos, se possível, e como um ano, se não:

{{#time: Y m d H:i:s | 1959 }} → 1959 08 21 00:00:00
(1959 é considerado uma hora e não um ano)
{{#time: Y m d H:i:s | 1960 }} → 1960 08 21 00:00:00
(como 19:60 não é uma hora válida, 1960 é considerado um ano)

Um número de seis algarismos é interpretado como horas, minutos e segundos, se possível, e como um erro, se não (não é nunca tratado, por exemplo, como ano e mês):

{{#time: Y m d H:i:s | 195909 }} → 2013 08 21 19:59:09
(195909 é considerado uma hora e não ano + mês)
{{#time: Y m d H:i:s | 196009 }} → Error: Invalid time.
(embora 19:60:09 não seja uma hora válida, 196009 não é interpretado como Setembro de 1960)

Aviso Aviso: A funcionalidade de preenchimento de datas parciais não é consistente; algumas partes são preenchidas usando valores atuais, outras não:

{{#time: Y m d H:i:s | January 1 }} → 2013 01 01 00:00:00
{{#time: Y m d H:i:s | February 2007 }} → 2007 02 01 00:00:00
(vai para o início do mês, não para o dia actual)

A função faz alguns cálculos matemáticos:

{{#time: d F Y | January 0 2008 }} → 31 December 2007
{{#time: d F | January 32 }}Error: Invalid time.
{{#time: d F | February 29 2008 }} → 29 February
{{#time: d F | February 29 2007 }} → 01 March

#timel[edit | edit source]

Esta função é idêntica a {{#time: ... }}, exceto por usar, como valor por omissão, a hora local do servidor da wiki (tal como definido em $wgLocaltimezone) quando não é fornecida uma data:

{{#time: Y-m-d }}2013-08-21
{{#timel: Y-m-d }}2013-08-21
{{#time: Y F d h:i:s}}2013 August 21 12:50:31
{{#timel: Y F d h:i:s}}2013 August 21 12:50:31

#titleparts[edit | edit source]

{{#titleparts: página | nº segmentos | nº primeiro segmento}}

Esta função separa um título de página em segmentos com base nas barras (/, e retorna alguns desses segmentos. Se o parâmetro nº segmentos for omitido, por omissão será zero e são retornados todos os segmentos. Se o parâmetro 1º segmento for omitido ou for zero, por omissão, toma o valor 1:

{{#titleparts: Talk:Um/dois/três }} → Talk:Um/dois/três
{{#titleparts: Talk:Um/dois/três | 1 }} → Talk:Um
{{#titleparts: Talk:Um/dois/três | 2 }} → Talk:Um/dois
{{#titleparts: Talk:Um/dois/três | 2 | 2 }} → dois/três

Ambos os parâmetros aceitam valores negativos. Valores negativos no parâmetro nº segmentos efetivamente «retira» segmentos do fim do título:

{{#titleparts: Talk:Um/dois/três | -1 }} → Talk:Um/dois
{{#titleparts: Talk:Um/dois/três | -1 | 1 }} → Talk:Um/dois
{{#titleparts: Talk:Um/dois/três | -1 | 2 }} → dois
{{#titleparts: Talk:Um/dois/três | -1 | 3 }} →

Valores negativos no parâmetro 1º segmento efetivamente deixam no título só esse número de elementos, contados a partir da direita:

{{#titleparts: Talk:Um/dois/três | | -2 }} → dois/três
{{#titleparts: Talk:Um/dois/três | 1 | -2 }} → dois
{{#titleparts: Talk:Um/dois/três | 2 | -2 }} → dois/três
{{#titleparts: Talk:Um/dois/três | 3 | -2 }} → dois/três

O título é dividido um máximo de 25 vezes; quaisquer mais barras (/) são ignoradas. O primeiro parâmetro também está limitado a 255 caracteres, porque é tratado como um título de página:

{{#titleparts: 1/2/3/4/5/6/7/8/9/10/11/12/
13/14/15/16/17/18/19/20/21/22/23/24/25/26/
27/28/29/30/31 | 1 | 25 }}
 → 25/26/27/28/29/30/31

Aviso Aviso: Pode-se usar #titleparts: como um pequeno «analisador e conversor sintático», mas considere que, quando a função retorna o primeiro segmento, retorna-o com a primeira letra em maiúsculas. Se esta característica for indesejada, use a palavra mágica lc: para controlar o resultado.

{{#titleparts: um/dois/três/quatro | 1 | 1 }} → Um
{{#titleparts: um/dois/três/quatro | 1 | 2 }} → dois
{{lc: {{#titleparts: um/dois/três/quatro | 1 | 1 }} }} → um

Notas gerais[edit | edit source]

Substituição[edit | edit source]

As funções do analisador sintático podem ser substituídas. Isto significa que, quando a página é gravada, a chamada para a função é substituída pelo resultado dessa função. Para substituir uma função, coloque subst: antes do cardinal (#). Por exemplo, o código:

{{#ifexist: Help:Contents/pt | sim | não}} → sim

demonstra se a página Help:Contents/pt existe ou não. Quando o código é colocado numa página, sempre que a página é apresentada ao usuário o código é executado e resultará em sim se a página existir e, mais tarde, em não se entretanto ela tiver sido apagada. Se a função for substituída:

{{subst:#ifexist: Help:Contents/pt | sim | não}} → sim

quando a página for gravada o código será executado e substituído pelo resultado da função (o código desaparece no conteúdo da página, sendo substituído pelo resultado). A partir daí, a função deixa de ser executada porque o código já não existe.

Aviso Aviso: O resultado de uma substituição é indefinido, se as expressões contiverem código volátil (como palavras mágicas ou outras funções do analisador sintático) que não seja também substituído. Para que o resultado da substituição seja consistente, todo o código volátil tem também de ser substituído usando subst::

{{#ifexist: {{BASEPAGENAME}} | sim | não}} → sim
{{subst:#ifexist: {{BASEPAGENAME}} | sim | não}} → não
{{subst:#ifexist: {{subst:BASEPAGENAME}} | sim | não}} → sim

Para mais detalhes consulte Help:Substitution.

Tabelas[edit | edit source]

As funções do analisador sintático frequentemente corrompem a sintaxe das tabelas, devido a ambas usarem a barra vertical (|) para separar elementos da sua sintaxe. Por exemplo, quando se pretende criar uma célula de uma tabela com características que podem variar, e é necessário passar a barra vertical no valor retornado por uma função, o analisador sintático não consegue distinguir que barras pertencem à função e que barras pertencem à tabela:

{| border=1
{{#ifexist: Help:Contents/pt
 | | style="color:green" | '''sim'''
 | | style="color:red" | '''não'''
}}
|}

resulta em:


Para solucionar este problema, muitas wikis criam a predefinição {{!}} cujo conteúdo é unicamente uma barra vertical (|). Isto permite "esconder" as barras indesejadas do analisador sintático, de forma que não sejam consideradas até que todas as predefinições e variáveis da página tenham sido expandidas:

{| border=1
{{#ifexist: Help:Contents/pt
 | {{!}} style="color:green" {{!}} '''sim'''
 | {{!}} style="color:red" {{!}} '''não'''
}}
|}

resulta em:

sim

Outra forma de resolver o problema é construir a tabela usando sintaxe HTML, embora esta solução resulte em código muito menos intuitivo e propenso a erros.

Tools.svg Dica para wiki admins: Você pode melhorar a legibilidade do código de tabelas HMTL (e do restante código HTML) usando «HTML tidy». Para mais detalhes, consulte Manual:Build Tidy from source e Manual:$wgUseTidy.
Tools.svg Dica para wiki admins: Você também pode usar a extensão Pipe Escape para melhorar o tratamento das barras verticais (pipes).

Remoção de espaço vazio[edit | edit source]

O espaço vazio, incluindo quebras de linha, tabulações e espaços, é removido do início e fim de todos os parâmetros das funções do analisador sintático. Se este comportamento não for desejado, a inclusão de quaisquer caracteres que não correspondam a espaço vazio impede a remoção. Incluem-se nestes caracteres a codificação HTML para um caracter vazio (&nbsp;), os caracteres Unicode invisíveis (como o espaço de largura zero e as marcas de direcção), ou os elementos que são reconhecidos e removidos pelo analisador sintático do MediaWiki (como <nowiki/>):

{{#ifeq: xpto     |     xpto | igual | diferente}} → igual
{{#ifeq: &#32;xpto     &#32; | &#32;     xpto&#32; | igual | diferente}} → diferente
{{#ifeq: <nowiki/>xpto     <nowiki/> | <nowiki/>     xpto<nowiki/> | igual | diferente}} → diferente
{{#ifeq: <nowiki/>xpto<nowiki/> | <nowiki/>xpto<nowiki/> | igual | diferente}} → diferente

Ver também[edit | edit source]

Língua: English  • Deutsch • Zazaki • español • français • 日本語 • मराठी • português • português do Brasil • svenska • ไทย • Türkçe