Help:Extension:ParserFunctions/pt

From MediaWiki.org
Jump to: navigation, search
PD Nota importante: Ao gravar esta página, concorda em publicar a sua contribuição no domínio público. Caso não queira ou não possa fazê-lo, devido a restrições de licenças, por favor, não a edite. Esta é uma das páginas de ajuda no domínio público, que podem ser livremente copiadas para qualquer wiki ou distribuídas com o MediaWiki; consulte Ajuda para ver as restantes e Copiar para saber como copiá-las para a sua wiki. PD

Contents

Extensão:ParserFunctions [edit]

Se a extensão ParserFunctions foi instalada na sua wiki, ela fornece onze funções adicionais ao analisador sintáctico, 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]

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 operativo do servidor que está a executar 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 de 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 vírgula 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]

{{#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 intercalar funções #if, ou seja, testar uma dentro da outra. 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áctico nas predefinições.

#ifeq [edit]

{{#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áctico, (como <nowiki>), é temporariamente substituído por um código único. Isto afecta 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ácticos, 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]

{{#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 objecto HTML com class="error". Este objecto pode ser gerado por outras funções do analisador sintáctico, como #expr, #time e #rel2abs, por erros em predefinições como ciclos e recursão, ou por outros erros failsoft detectados pelo analisador sintáctico.

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]

{{#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

excepto nos casos em que a expressão de entrada esteja vazia ou seja incorrecta (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]

{{#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 efectivamente vazia, ou seja uma página de redireccionamento. 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 | verdadeiro | falso}} → verdadeiro
{{#ifexist: XXXHelp:Extension:ParserFunctions/ptXXX | 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 restem executar, retornam automaticamente o valor se falso quer a sua página alvo exista ou não.

Tools.svg Dica para administradores: 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»), então Special:Páginas afluentes/Xpto listará «Help:Extension:ParserFunctions/pt».

Nas wikis que usam um repositório partilhado de ficheiros 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 ficheiro, é retornado o valor se verdadeiro para todas as entradas acima.

#rel2abs [edit]

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

Esta função cria um endereço completo, para uma página ou para um ficheiro, 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-directó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/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]

{{#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]

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]

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]

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]

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]

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, excepto 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. 5
m Mês, com zeros à esquerda. 05
M Nome abreviado do mês, na língua do site. May
F Nome completo do mês, na língua do site. May
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. 19
Dia
j Dia do mês, sem zeros à esquerda. 12
d Dia do mês, com zeros à esquerda. 12
z Dia do ano (1 de Janeiro = 0).
Nota Nota: Para obter o dia do ano no padrão ISO, adicionar 1.
131
D Nome abreviado do dia. Raramente internacionalizado. Sun
l Nome completo do dia. Raramente internacionalizado. Sunday
N Dia da semana no ISO-8601 (Seg.-Feira = 1, Domingo = 7). 7
w Número do dia da semana (Domingo = 0, Sábado = 6). 0
Hour
a "am" durante a manhã (00:00:00 → 11:59:59), "pm" à tarde e noite (12:00:00 → 23:59:59) pm
A Versão em maiúsculas de a acima. PM
g Hora no formato 12 horas, sem zeros à esquerda. 8
h Hora no formato 12 horas, com zeros à esquerda. 08
G Hora no formato 24 horas, sem zeros à esquerda. 20
H Hora no formato 24 horas, com zeros à esquerda. 20
Minutos e segundos
i Minutos após a hora, com zeros à esquerda. 09
s Segundos após o minuto, com zeros à esquerda. 08
U Segundos desde 1 de Janeiro de 1970 00:00:00 GMT. 1368389348
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-05-12T20:09:08+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. Sun, 12 May 2013 20:09:08 +0000
Calendários não Gregorianos
Iraniano
xij Dia do mês. 22
xiF Nome completo do mês. Ordibehesht
xin Número do mês. 2
xiY Ano completo. 1392
Hebraico
xjj Dia do mês. 3
xjF Nome completo do mês. Sivan
xjx Forma genitiva do nome do mês. Sivan
xjn Número do mês. 9
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 activa e desactiva 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 }} → 12-05-2013
{{#time: d M [[Y]] }} → 12 May 2013

Pode ser especificado um objecto 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 carácter 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 carácter de formatação são interpretados como o carácter literal, sem formatação.
{{#time: j de F de Y}} → 12 12UTC May 12UTC 2013
{{#time: j \de F \de Y}} → 12 dUTC May 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 (pm52013)
{{#time: [[Y "(ano)"]] }} → 2013 (ano)
{{#time: i's" }} → 09'08"

O objecto data/hora pode ter qualquer formato aceite pela função strtotime() do PHP. São aceites objectos absolutos (20 December 2000) e relativos (+20 hours).

{{#time: r | now}} → Sun, 12 May 2013 20:09:08 +0000
{{#time: r | +2 hours}} → Sun, 12 May 2013 22:09:08 +0000
{{#time: r | now + 2 hours}} → Sun, 12 May 2013 22:09:08 +0000

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

{{#time: U | now }} → 1368389348
{{#time: r | @1368389348}} → Sun, 12 May 2013 20:09:08 +0000

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

{{#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 actuais:

{{#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 05 12 00:00:00
(1959 é considerado uma hora e não um ano)
{{#time: Y m d H:i:s | 1960 }} → 1960 05 12 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 05 12 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 actuais, 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]

Esta função é idêntica a {{#time: ... }}, excepto 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-05-12
{{#timel: Y-m-d }}2013-05-12
{{#time: Y F d h:i:s}}2013 May 12 08:09:08
{{#timel: Y F d h:i:s}}2013 May 12 08:09:08

#titleparts [edit]

{{#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 efectivamente «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 efectivamente 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 usar #titleparts: como um pequeno «analisador e conversor sintáctico», 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]

Substituição [edit]

As funções do analisador sintáctico 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 utilizador 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áctico) 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]

As funções do analisador sintáctico 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áctico 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 tornear este problema, muitas wikis criam a predefinição {{!}} cujo conteúdo é unicamente uma barra vertical (|). Isto permite "esconder" as barras indesejadas do analisador sintáctico, de forma a 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 tornear 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 administradores: 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 administradores: Também pode usar a extensão Pipe Escape para melhorar o tratamento das barras verticais (pipes).

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

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áctico. Se este comportamento não for desejado, a inclusão de quaisquer caracteres que não correspondem a espaço vazio impede a remoção. Incluem-se nestes caracteres a codificação HTML para um carácter 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áctico 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]

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