Help:Extension:ParserFunctions/pt
![]() |
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. | ![]() |
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: 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
![]() |
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:
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.
![]() |
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=2 = html
- | 1{{=}}2 = predefinição
- | outro
- }} → predefinição
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. |
||
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).![]() |
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: 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: 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: 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: 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.
![]() |
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. |
![]() |
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 ( ), 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:  xpto   |   xpto  | 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]
- Help:Palavras mágicas
- Help:Parâmetros de funções nas predefinições
- MetaWiki: Help:Comparison between ParserFunctions syntax and TeX syntax
- MetaWiki: Help:Newlines and spaces
- Extension:StringFunctions
Língua: | English • Deutsch • Zazaki • español • français • मराठी • português • português do Brasil • svenska • ไทย • Türkçe |
---|