Help:Extension:ParserFunctions/pt-br: Difference between revisions
Updating to match new version of source page |
Created page with "Você também pode usar um parâmetro como a string de teste em sua declaração #if. Você precisa se certificar que você adicionou o | (símbolo pipe) após o nome da vari..." |
||
| Line 171: | Line 171: | ||
* Exemplo: <tt><nowiki>{{#if:string de teste | valor se string de teste não está vazia | {{#if:string de teste | valor se string de teste não está vazia | valor se string de teste está vazia (ou apenas espaços em branco)}} }}</nowiki></tt> |
* Exemplo: <tt><nowiki>{{#if:string de teste | valor se string de teste não está vazia | {{#if:string de teste | valor se string de teste não está vazia | valor se string de teste está vazia (ou apenas espaços em branco)}} }}</nowiki></tt> |
||
Você também pode usar um parâmetro como a string de teste em sua declaração #if. Você precisa se certificar que você adicionou o | (símbolo pipe) após o nome da variável. |
|||
You can also use a parameter as the test string in your #if statement. You need to ensure you add the | (pipe symbol) after the name of the variable. |
|||
*Example <code><nowiki>{{#if:{{{1</nowiki><span style="color:red; font-weight:bold">|</span>}}}|You entered text in variable 1|There is no text in variable 1}}</code> |
*Example <code><nowiki>{{#if:{{{1</nowiki><span style="color:red; font-weight:bold">|</span>}}}|You entered text in variable 1|There is no text in variable 1}}</code> |
||
Revision as of 20:07, 4 March 2016
A extensão ParserFunctions fornece funções adicionais ao analisador sintático, que suplementam as "palavras mágicas" já presentes no MediaWiki. (Pode ser configurado para proporcionar ParserFunctions adicionais para manuseamento de string; estas funções de string estão documentadas em outro lugar). Todas as funções fornecidas pela extensão têm a forma:
{{{{#função: argumento 1 | argumento 2 | argumento 3 ...}}}}
#expr
| Tipo | Operadores |
|---|---|
| Agrupamento (parênteses) | ( )
|
| Números | 1234.5 e (2.718) pi (3.142)
|
operador binário e unários +,-
| |
| Unários | not ceil trunc floor abs exp ln sin cos tan acos asin atan
|
| Binários | ^
|
* / div mod
| |
+ -
| |
| Arredondamento | round
|
| Lógicos | = != <> > < >= <=
|
and
| |
or
|
Esta função calcula a expressão matemática e retorna o resultado.
This function is also available in Scribunto via the mw.ext.ParserFunctions.expr function.
{{#expr: expressão }}
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.
Nos operadores de álgebra booleana, o número zero assume o valor lógico «false» (0). Qualquer outro número, positivo ou negativo, assume o valor lógico «true» (1).
{{#expr: 1 and -1 }}→ 1{{#expr: 1 and 0 }}→ 0{{#expr: 1 or -1 }}→ 1{{#expr: -1 or 0 }}→ 1{{#expr: 0 or 0 }}→ 0
Uma expressão de entrada vazia retorna uma string vazia. Expressões inválidas retornam uma das várias mensagens de erro, que podem ser capturadas com a função #iferror:
{{#expr: }}→{{#expr: 1+ }}→ Expression error: Missing operand for +.{{#expr: 1 foo 2 }}→ Expression error: Unrecognized word "foo".
A ordem dos operandos de adição e subtração, antes ou depois de um número, é significativa, e pode ser tratada como um valor positivo ou negativo, em vez de como um operando com uma entrada errada:
{{#expr: +1 }}→ 1{{#expr: -1 }}→ -1{{#expr: + 1 }}→ 1{{#expr: - 1 }}→ -1
Note que, se estiver usando a saída de palavras mágicas, você deve formatá-las, a fim de remover vírgulas e traduzir os numerais. Por exemplo {{NUMBEROFUSERS}} resulta em 18 487 975, onde desejamos 18487975 que pode ser obtido por {{formatnum:{{NUMBEROFUSERS}}|R}}. Isto é especialmente importante em algumas línguas, onde números são traduzidos. Por exemplo, no idioma Bengali, {{NUMBEROFUSERS}} produz, como resultado, ৩০,০৬১.
{{#expr:{{NUMBEROFUSERS}}+100}}→ Expression error: Unrecognized punctuation character " ".{{#expr:{{formatnum:{{NUMBEROFUSERS}}|R}}+100}}→ 18488075
Arredondamento
Arredonda o número do lado esquerdo a um múltiplo de 1/10 elevado a uma potência, com o expoente igual ao valor truncado de um dado número do lado direito.
Para arredondar para cima ou para baixo usar os operadores unários ceil or floor respectivamente.
| Case de teste | Resultado | Método de arredondamento |
|---|---|---|
{{#expr: 1/3 round 5 }} |
0.33333 | O dígito final é menor que 5, então nenhum arredondamento aparente ocorre |
{{#expr: 1/6 round 5 }} |
0.16667 | O dígito final é maior ou igual a 5, então é arredondado para cima |
{{#expr: 8.99999/9 round 5 }} |
1 | Mais uma vez, o resultado é arredondado para cima no último dígito, o que resulta no arredondamento adicional |
{{#expr: 1234.5678 round -2 }} |
1200 | Arredondado para os 100 mais próximos por causa dos valores negativos arredondar para a esquerda do ponto decimal |
{{#expr: 1234.5678 round 2 }} |
1234.57 | Arredondado para o centésimo mais próximo uma vez que valores positivos arredondam para a direita do ponto decimal |
{{#expr: 1234.5678 round 2.3 }} |
1234.57 | Decimais no índice de arredondamento não fazem diferença no resultado arredondado |
{{#expr: trunc 1234.5678 }} |
1234 | Parte decimal truncada (cortada) |
| Arredondamento para o número inteiro mais próximo | ||
{{#expr: 1/3 round 0 }} |
0 | Baixando para o inteiro "mais próximo", que é zero |
{{#expr: 1/2 round 0 }} |
1 | Subindo para o número inteiro mais próximo, que é um |
{{#expr: 3/4 round 0 }} |
1 | Subindo para o número inteiro mais próximo, que é um |
{{#expr: -1/3 round 0 }} |
-0 | Até o número inteiro mais próximo, que é zero |
{{#expr: -1/2 round 0 }} |
-1 | Baixando para o inteiro mais próximo, que é negativo |
{{#expr: -3/4 round 0 }} |
-1 | Baixando para o inteiro mais próximo, que é negativo |
| Arredondamento para cima ou para baixo com ceil e floor | ||
{{#expr: ceil(1/3) }} |
1 | Até o próximo número inteiro "maior", que é um |
{{#expr: floor(1/3) }} |
0 | Baixando para o próximo inteiro "menor, que é zero |
{{#expr: ceil(-1/3) }} |
-0 | Até o próximo número inteiro maior, que é igual a zero |
{{#expr: floor(-1/3) }} |
-1 | Baixando para o menor inteiro mais próximo, que é negativo |
{{#expr: ceil 1/3 }} |
0.33333333333333 | Não arredondado uma vez que 1 já é um inteiro |
#if
Esta função avalia uma seqüência de teste e determina se é ou não é vazio. Uma seqüência de teste que contém apenas espaço em branco é considerado vazio.
{{#if: string de teste | valor se a string de teste não estiver vazia | valor se a string de teste está vazia (ou apenas espaços em branco) }}
{{#if: primeiro parâmetro | segundo parâmetro | terceiro parâmetro }}
Esta função primeiramente testa se o primeiro parâmetro não está vazio. Se o primeiro parâmetro não estiver vazio a função exibe o segundo argumento. Se o primeiro parâmetro estiver vazio ou contiver apenas espaços em branco (espaços, quebras de linha, etc) ele exibe o terceiro argumento.
{{#if: | yes | no}}→ no{{#if: string | yes | no}}→ yes{{#if: | yes | no}}→ no{{#if:→ no
| yes | no}}
A string de teste sempre será interpretada como texto puro, então expressões matemáticas não serão avaliadas:
{{#if: 1==2 | yes | no }}→ yes{{#if: 0 | yes | no }}→ yes
O último parâmetro (false) pode ser omitido:
{{#if: foo | yes }}→ yes{{#if: | yes }}→{{#if: foo | | no}}→
A função pode ser aninhada. Para isso, aninhe a função #if interior em sua forma integral no lugar de um parâmetro da função delimitadora #if. A profundidade de pelo menos sete níveis de aninhamento é possível, apesar de que pode depender do wiki ou de um limite de memória.
- Exemplo: {{#if:string de teste | valor se string de teste não está vazia | {{#if:string de teste | valor se string de teste não está vazia | valor se string de teste está vazia (ou apenas espaços em branco)}} }}
Você também pode usar um parâmetro como a string de teste em sua declaração #if. Você precisa se certificar que você adicionou o | (símbolo pipe) após o nome da variável.
- Example
{{#if:{{{1|}}}|You entered text in variable 1|There is no text in variable 1}}
Veja Parser functions in templates para mais exemplos dessa função analisadora.
#ifeq
Esta função do analisador compara duas strings e determina se elas são idênticas.
{{#ifeq: string 1 | string 2 | value if identical | value if different }}
Se ambas as strings são valores numéricos válidos, as strings são comparadas numericamente:
{{#ifeq: 01 | 1 | equal | not equal}}→ equal{{#ifeq: 0 | -0 | equal | not equal}}→ equal{{#ifeq: 1e3 | 1000 | equal | not equal}}→ equal{{#ifeq: {{#expr:10^3}} | 1000 | equal | not equal}}→ equal
Caso contrário, a comparação é feita como texto; esta comparação é case sensitive:
{{#ifeq: foo | bar | equal | not equal}}→ not equal{{#ifeq: foo | Foo | equal | not equal}}→ not equal{{#ifeq: "01" | "1" | equal | not equal}}→ not equal (comparar a exemplo semelhante anteriormente, sem as aspas){{#ifeq: 10^3 | 1000 | equal | not equal}}→ not equal (comparar com o exemplo semelhante acima, com#expr)
Como um exemplo prático, dada uma predefinição existente Template:Size usado para definir tamanhos curtos e longos padronizados, definidos como:
{{#ifeq: {{{1|}}} | short | 20 | 40}}
acontecerá o seguinte:
{{size|short}}→ 20{{size|20}}→ 40{{size}}→ 40
#iferror
This function takes an input string and returns one of two results; the function evaluates to true if the input string contains an HTML object with class="error", as generated by other parser functions such as #expr, #time and #rel2abs, template errors such as loops and recursions, and other "failsoft" parser errors.
{{#iferror: test string | value if error | value if correct }}
Uma ou ambas as strings de retorno podem ser omitidas. Se a string correct is omitida, the string de teste é retornada se não estiver errada. Se a string de erro também é omitida, uma string vazia é retornada com erro:
{{#iferror: {{#expr: 1 + 2 }} | error | correct }}→ correct{{#iferror: {{#expr: 1 + X }} | error | correct }}→ error{{#iferror: {{#expr: 1 + 2 }} | error }}→ 3{{#iferror: {{#expr: 1 + X }} | error }}→ error{{#iferror: {{#expr: 1 + 2 }} }}→ 3{{#iferror: {{#expr: 1 + X }} }}→ {{#iferror: {{#expr: . }} | error | correct }}→ correct{{#iferror: <strong class="error">a</strong> | error | correct }}→ error
#ifexpr
Esta função avalia uma expressão matemática e retorna uma de duas strings, dependendo do valor booleano do resultado:
{{#ifexpr: expression | value if true | value if false }}
A expressão de entrada é avaliada exatamente como para #expr acima, com os mesmos operadores que estão disponíveis. A saída é, então, avaliada como uma expressão booleana.
Uma expressão de entrada vazia é avaliada como false:
{{#ifexpr: | yes | no}}→ no
Como mencionado acima, zero é avaliado como false e qualquer valor diferente de zero é avaliado como true, então esta função é equivalente a uma utilização de #ifeq e #expr apenas:
{{#ifeq: {{#expr: expression }} | 0 | value if false | value if true }}
com exceção de uma expressão de entrada vazia ou errada (uma mensagem de erro é tratada como uma string vazia, não é igual a zero, então temos valor se verdadeiro).
{{#ifexpr: = | yes | no }}→ Expression error: Unexpected = operator.
comparação
{{#ifeq: {{#expr: = }} | 0 | no | yes }}→ yes
Um ou outro ou ambos os valores de retorno podem ser omitidos; nenhuma saída é dada quando o pacote apropriado é deixado vazio:
{{#ifexpr: 1 > 0 | yes }}→ yes{{#ifexpr: 1 < 0 | yes }}→{{#ifexpr: 0 = 0 | yes }}→ yes{{#ifexpr: 1 > 0 | | no}}→{{#ifexpr: 1 < 0 | | no}}→ no{{#ifexpr: 1 > 0 }}→
#ifexist
Esta função recebe uma string de entrada, interpreta-a como um título da página, e retorna um dos dois valores, dependendo ou não se a página existe no wiki local.
{{#ifexist: page title | value if exists | value if doesn't exist }}
The function evaluates to true if the page exists, whether it contains content, is visibly blank (contains meta-data such as category links or magic words, but no visible content), is blank, or is a redirect. Only pages that are redlinked evaluate to false, including if the page used to exist but has been deleted.
{{#ifexist: Help:Extension:ParserFunctions/pt-br | exists | doesn't exist }}→ exists{{#ifexist: XXHelp:Extension:ParserFunctions/pt-brXX | exists | doesn't exist }}→ doesn't exist
The function evaluates to true for system messages that have been customized, and for special pages that are defined by the software.
{{#ifexist: Special:Watchlist | exists | doesn't exist }}→ exists{{#ifexist: Special:CheckUser | exists | doesn't exist }}→ exists (pois a extensão CheckUser está instalada nesta wiki){{#ifexist: MediaWiki:Copyright | exists | doesn't exist }}→ doesn't exist (pois MediaWiki:Copyright não foi personalizado)
Se uma página verifica um destino usando #ifexist:, então, essa página aparecerá na lista Special:WhatLinksHere para a página de destino. Então, se o código {{#ifexist:Foo}} foi incluído em tempo real nesta página (Help:Extension:ParserFunctions/pt-br), Special:WhatLinksHere/Foo listará Help:Extension:ParserFunctions/pt-br.
Nas wikis que usam um repositório de mídia compartilhada, #ifexist: pode ser usado para verificar se um arquivo foi enviado para o repositório, mas não para a própria wiki:
{{#ifexist: File:Example.png | exists | doesn't exist }}→ doesn't exist{{#ifexist: Image:Example.png | exists | doesn't exist }}→ doesn't exist{{#ifexist: Media:Example.png | exists | doesn't exist }}→ exists
Se uma página de descrição do local, foi criado para o arquivo, o resultado é existe para todos os itens acima.
#ifexist: não funciona com links interwiki.
limites de ifexist
#ifexist: is considered an "expensive parser function", only a limited number of which can be included on any one page (including functions inside transcluded templates). When this limit is exceeded, any further #ifexist: functions automatically return false, whether the target page exists or not, and the page is categorized into Category:Pages with too many expensive parser function calls. The name of the tracking category may vary depending on the content language of your wiki.
For some use cases it is possible to emulate the ifexist effect with css, by using the selectors a.new (to select links to unexisting pages) or a:not(.new) (to select links to existing pages). Furthermore, since the number of expensive parser functions that can be used on a single page is controlled by $wgExpensiveParserFunctionLimit, one can also increase the limit in LocalSettings.php if needed.
#rel2abs
Essa função converte um caminho de arquivo relativo em um caminho absoluto.
{{#rel2abs: path }}{{#rel2abs: path | base path }}
Dentro da entrada do caminho, a seguinte sintaxe é válida:
.→ o nível atual..→ "suba um nível"/foo→ "desça um nível no subdiretório /foo"
Se o caminho base não for especificado, o nome completo da página será usado em vez disso:
{{#rel2abs: /quok | Help:Foo/bar/baz }}→ Help:Foo/bar/baz/quok{{#rel2abs: ./quok | Help:Foo/bar/baz }}→ Help:Foo/bar/baz/quok{{#rel2abs: ../quok | Help:Foo/bar/baz }}→ Help:Foo/bar/quok{{#rel2abs: ../. | Help:Foo/bar/baz }}→ Help:Foo/bar
Sintaxe inválida, como /. ou /./, é ignorada. Desde são permitidos no máximo dois pontos finais consecutivos, sequências como essas podem ser usadas para separar as declarações sucessivas:
{{#rel2abs: ../quok/. | Help:Foo/bar/baz }}→ Help:Foo/bar/quok{{#rel2abs: ../../quok | Help:Foo/bar/baz }}→ Help:Foo/quok{{#rel2abs: ../../../quok | Help:Foo/bar/baz }}→ quok{{#rel2abs: ../../../../quok | Help:Foo/bar/baz }}→ Erro: Profundidade inválida no caminho: “Help:Foo/bar/baz/../../../../quok” (foi tentado o acesso a um nó acima do nó raiz).
#switch
Essa função compara um valor de entrada contra vários casos de teste, retornando uma string associada, se for encontrada uma correspondência.
{{#switch: comparison string
| case = result
| case = result
| ...
| case = result
| default result
}}
Exemplos:
{{#switch: baz | foo = Foo | baz = Baz | Bar }}→ Baz{{#switch: foo | foo = Foo | baz = Baz | Bar }}→ Foo{{#switch: zzz | foo = Foo | baz = Baz | Bar }}→ Bar
#switch with partial transclusion tags can effect a configuration file that enables an editor unfamiliar with template coding to view and edit configurable elements.
Default
The default result is returned if no case string matches the comparison string:
{{#switch: test | foo = Foo | baz = Baz | Bar }}→ Bar
Nesta sintaxe, o resultado padrão deve ser o último parâmetro e não deve conter um sinal de igual bruto.
{{#switch: test | Bar | foo = Foo | baz = Baz }}→{{#switch: test | foo = Foo | baz = Baz | B=ar }}→
Alternativamente, o resultado padrão pode ser declarado explicitamente com uma string case de "#default".
{{#switch: comparison string
| case = result
| case = result
| ...
| case = result
| #default = default result
}}
Resultados padrão declarados desta forma podem ser colocados em qualquer lugar dentro da função:
{{#switch: test | foo = Foo | #default = Bar | baz = Baz }}→ Bar
Se o parâmetro "padrão" for omitido e nenhuma correspondência for feita, nenhum resultado é retornado:
{{#switch: test | foo = Foo | baz = Baz }}→
Grouping results
It is possible to have 'fall through' values, where several case strings return the same result string. This minimizes duplication.
{{#switch: comparison string
| case1 = result1
| case2
| case3
| case4 = result234
| case5 = result5
| case6
| case7 = result67
| #default = default result
}}
Here cases 2, 3 and 4 all return result234; cases 6 and 7 both return result67
Comparison behavior
As with #ifeq, the comparison is made numerically if both the comparison string and the case string being tested are numeric; or as a case-sensitive string otherwise:
{{#switch: 0 + 1 | 1 = one | 2 = two | three}}→ three{{#switch: {{#expr: 0 + 1}} | 1 = one | 2 = two | three}}→ one
{{#switch: a | a = A | b = B | C}}→ A{{#switch: A | a = A | b = B | C}}→ C
Uma string case pode estar vazia:
{{#switch: | = Nothing | foo = Foo | Something }}→ Nothing
Uma vez que a correspondência for encontrada, cases subsequentes são ignorados:
{{#switch: b | f = Foo | b = Bar | b = Baz | }}→ Bar
Sinais de igual brutos
Strings "case" não contêm sinais de igual brutos. Para contornar isso, crie uma predefinição {{=}} contendo um sinal de igual simples: =.
Exemplo:
{{#switch: 1=2| 1=2 = raw| 1<nowiki>=</nowiki>2 = nowiki| 1=2 = html| 1{{=}}2 = template| default}}→ html
Nota:
For a simple real life example of the use of this function, check Template:NBA color. Two complex examples can be found at Template:Extension and Template:BOTREQ.
Substituição de #ifeq
#switch pode ser usado para reduzir a profundidade de expansão.
Por exemplo:
{{#switch:{{{1}}} |condition1=branch1 |condition2=branch2 |condition3=branch3 |branch4}}
é equivalente a
{{#ifeq:{{{1}}}|condition1 |branch1 |{{#ifeq:{{{1}}}|condition2 |branch2 |{{#ifeq:{{{1}}}|condition3 |branch3 |branch4}}}}}}
i.e.
{{#ifeq:{{{1}}}|condition1
|<!--then-->branch1
|<!--else-->{{#ifeq:{{{1}}}|condition2
|<!--then-->branch2
|<!--else-->{{#ifeq:{{{1}}}|condition3
|<!--then-->branch3
|<!--else-->branch4}}}}}}
#time
| Código | Descrição | Saída atual (Limpe a cache desta página para atualizar) |
|---|---|---|
| Ano | ||
Y
|
Ano c/ quatro dígitos. | 2026 |
y
|
Ano c/ dois dígitos. | 26 |
L
|
1 se for ano bissexto, 0 se não for. | 0 |
o[note 1]
|
Código do ano ISO-8601 da semana especificada.[note 2] | 2026[note 3] |
| Mês | ||
n
|
Índice do mês sem zeros à esquerda. | 8 |
m
|
Índice do mês com zeros à esquerda. | 08 |
M
|
Uma abreviação do nome do mês, no idioma do site. | ago. |
F
|
O nome completo do mês no idioma do site. | agosto |
xg
|
Retorna o nome completo do mês na forma genitiva para idiomas de sites que distinguem entre formas genitivas e nominativas. Esta opção é útil para muitas línguas eslavas como polonês, russo, bielo-russo, tcheco, eslovaco, esloveno, ucraniano, etc. | Para o polonês:
(nominativo)
(genitivo)
|
| Semana | ||
W
|
Número da semana ISO 8601, com zeros à esquerda. | 34 |
| Dia | ||
j
|
Dia do mês, sem zeros à esquerda | 23 |
d
|
Dia do mês, com zeros à esquerda | 23 |
z
|
Dia do ano (Janeiro 1 = 0). |
234 |
D
|
Uma abreviação do dia da semana. Raramente internacionalizado. | dom |
l
|
Nome completo do dia. Raramente internacionalizado. | domingo |
N
|
Dia da semana ISO 8601 (Segunda-feira = 1, Domingo = 7). | 7 |
w
|
Número do dia da semana (Domingo = 0, Sábado = 6). | 0 |
| Hora | ||
a
|
"am" antes do meio-dia (00:00:00 → 11:59:59), "pm" depois do meio-dia (12:00:00 → 23:59:59). | am |
A
|
Versão em maiúsculas do a acima.
|
AM |
g
|
Hora no formato de 12 horas, sem zeros à esquerda. | 12 |
h
|
Hora no formato de 12 horas, com zeros à esquerda. | 12 |
G
|
Hora no formato de 24 horas, sem zeros à esquerda. | 0 |
H
|
Hora no formato de 24 horas, com zeros à esquerda. | 00 |
| Minutos e segundos | ||
i
|
Minutos depois da hora, com zeros à esquerda. | 53 |
s
|
Segundos após o minuto, com zeros à esquerda. | 21 |
U
|
Segundos desde 1º. de Janeiro de 1970 00:00:00 GMT | 1787446401 |
| Fuso horário (a partir de 1.22wmf2) | ||
e
|
Identificador de fuso horário. | UTC |
I
|
Se desejar que a data esteja ou não no horário de verão. | 0 |
O
|
Diference para o horário de Greenwich (GMT) | +0000 |
P
|
Diference para o horário de Greenwich (GMT), com dois pontos | +00:00 |
T
|
Abreviação do fuso horário. | UTC |
Z
|
Deslocamento em segundos do fuso horário. | 0 |
| Diversos | ||
t
|
Número de dias do mês atual. | 31 |
c
|
ISO 8601 formatted date, equivalent to Y-m-d"T"H:i:s+00:00.
|
2026-08-23T00:53:21+00:00 |
r
|
Data formatada RFC 5322, equivalente a D, j M Y H:i:s +0000, com o nome do dia da semana e o nome do mês não internacionalizados.
|
Sun, 23 Aug 2026 00:53:21 +0000 |
| Calendários não-Gregorianos | ||
| Islâmicos | ||
xmj
|
Dia do mês. | 9 |
xmF
|
Nome completo do mês. | Rabi' al-awwal |
xmn
|
Índice do mês. | 3 |
xmY
|
Ano completo. | 1448 |
| Iraniano (Jalaly) | ||
xij
|
Dia do mês. | 1 |
xiF
|
Nome completo do mês. | Shahrivar |
xin
|
Índice do mês. | 6 |
xiY
|
Ano completo. | 1405 |
xiy
|
Ano c/ dois dígitos. | 05 |
| Hebraico | ||
xjj
|
Dia do mês. | 10 |
xjF
|
Nome completo do mês. | Elul |
xjt
|
Número de dias no mês. | 29 |
xjx
|
Forma genitiva do nome do mês. | Elul |
xjn
|
Número do mês. | 12 |
xjY
|
Ano completo. | 5786 |
| Calendário solar tailandês | ||
xkY
|
Ano completo no Calendário solar tailandês. |
2569 |
| Ano Minguo/Juche | ||
xoY
|
Ano completo. | 115 |
| Calendário de eras do Japão (nengo) | ||
xtY
|
Ano completo. | 令和8 |
| Flags | ||
xn
|
Formata o próximo código numérico como número ASCII bruto. | No idioma Hundi, {{#time:H, xnH}} produz ०६, 06.
|
xN
|
Como xn, mas como uma flag alternada, que perdura até o final da string, ou até que a próxima aparição de xN na string. | |
xr
|
Formata o próximo número como um número romano. Só funciona para números até 10.000 (até 3.000 no pré MediaWiki 1.20). |
{{#time:xrY}} → MMXXVI
|
xh
|
Formata o próximo número como um numeral em hebraico. | {{#time:xhY}} → ב'כ"ו
|
Esta parser function pega uma data e/ou uma hora (no calendário Gregoriano) e formata-o de acordo com a sintaxe fornecida. Um objeto de data/hora pode ser especificado; o padrão é o valor da palavra mágica {{CURRENTTIMESTAMP}} – isto é, a hora em que a página foi renderizada dentro do HTML.
{{#time: format string }}{{#time: format string | date/time object }}{{#time: format string | date/time object | language code }}
A lista de códigos de formatação válidos é apresentada na tabela à direita. Qualquer caractere na string de formatação que não é reconhecido, é passado inalterado; isto aplica-se também aos espaços em branco (o sistema não precisa deles para interpretar os códigos). Há também duas maneiras de escapar os caracteres da string de formatação:
- Uma barra invertida seguido por um caractere de formatação é interpretada como um único caractere literal
- Caracteres entre aspas duplas são considerados caracteres literais, e as aspas são removidas.
Além disso, o dígrafo xx é interpretada como um literal simples "x".
{{#time: Y-m-d }}→ 2026-08-23{{#time: [[Y]] m d }}→ 2026 08 23{{#time: [[Y (year)]] }}→ 2026 (26UTCamSun, 23 Aug 2026 00:53:21 +0000){{#time: [[Y "(year)"]] }}→ 2026 (year){{#time: i's" }}→ 53'21"
O objeto data/hora pode ser em qualquer formato aceito pela função do PHP strtotime(). Horas absolutas (eg 20 December 2000) e relativas (eg +20 hours) são aceitas.
{{#time: r|now}} → Sun, 23 Aug 2026 00:53:21 +0000
{{#time: r|+2 hours}} → Sun, 23 Aug 2026 02:53:21 +0000
{{#time: r|now + 2 hours}} → Sun, 23 Aug 2026 02:53:21 +0000
O código de idioma em ISO 639-3 (?) permite que a string seja exibida no idioma escolhido
{{#time:d F Y|1988-02-28|nl}} → 28 februari 1988
{{#time:l|now|uk}} → неділя
{{#time:d xg Y|20 June 2010|pl}} → 20 czerwca 2010
Se você já calculou um timestamp Unix, você pode usá-lo em cálculos de data, pré-pendendo um símbolo @.
{{#time: U | now }} → 1787446401
{{#time: r|@1787446401}} → Sun, 23 Aug 2026 00:53:21 +0000
Datas absolutas totais ou parciais podem ser especificadas; a função irá "preencher" as partes da data que não forem especificadas usando os valores 'atuais:
{{#time: Y | January 1 }}→ 2026
Com o MediaWiki r86805 - Code Review, um número de quatro dígitos é sempre interpretado como um ano, nunca como horas e minutos:
{{#time: Y m d H:i:s | 1959 }} → 1959 08 23 00:00:00
Um número de seis dígitos é interpretado como horas, minutos e segundos, se possível, mas de outra forma, como um erro (não, por exemplo, um ano e mês):
{{#time: Y m d H:i:s | 195909 }} → 2026 08 23 19:59:09 A entrada é tratada como uma hora em vez de um código de ano + mês.
{{#time: Y m d H:i:s | 196009 }} → Erro: Tempo inválido. Embora 19:60:09 não é uma hora válida, 196009 não é interpretado como setembro de 1960.
A função executa uma certa quantidade de matemática de data:
{{#time: d F Y | January 0 2008 }}→ 31 dezembro 2007{{#time: d F | January 32 }}→ Erro: Tempo inválido.{{#time: d F | February 29 2008 }}→ 29 fevereiro{{#time: d F | February 29 2007 }}→ 01 março{{#time:Y-F|now -1 months}}→ 2026-julho
The total length of the format strings of the calls of #time is limited to 6000 characters[1].
Questão do fuso horário
Existe um bug nesta parser function #time (mais especificamente em PHP DateTime) que não permite a passagem de não-inteiros como deslocamentos de fuso horário relativos. Este problema não se aplica quando se usa um fuso horário exato, como EDT. Por exemplo:
- {{#time:g:i A | -4 hours }} ==> 8:53 PM
Entretanto, a Venezuela está a -4.5 horas do UTC, e, assim, usar seu fuso horário não permitirá normalmente o cálculo correto de um deslocamento de fuso horário relativo. Veja o que acontece:
- {{#time:g:i A | -4.5 hours }} ==> 9:53 AM
Para contornar este problema, basta converter o tempo em minutos ou segundos, assim:
- {{#time:g:i A | -270 minutes }} ==> 8:23 PM
- {{#time:g:i A | -16200 seconds }} ==> 8:23 PM
(Tim Starling, o desenvolvedor desta função, forneceu a sintaxe exata para esta solução.)
#timel
Esta função é idêntica a {{#time: ... }}, exceto que ele usa o horário local da wiki (como definido em $wgLocaltimezone) quando nenhuma data é indicada.
{{#time: Y-m-d }}→ 2026-08-23{{#timel: Y-m-d }}→ 2026-08-23{{#time: Y F d H:i:s}}→ 2026 agosto 23 00:53:21{{#timel: Y F d H:i:s}}→ 2026 agosto 23 00:53:21
#titleparts
This function separates a page title into segments based on slashes, then returns some of those segments as output.
{{#titleparts: pagename | number of segments to return | first segment to return }}
If the number of segments to return parameter is not specified, it defaults to "0", which returns all the segments from the first segment to return (included). If the first segment to return parameter is not specified or is "0", it defaults to "1":
{{#titleparts: Talk:Foo/bar/baz/quok }}→ Talk:Foo/bar/baz/quok{{#titleparts: Talk:Foo/bar/baz/quok | 1 }}→ Talk:Foo See also {{ROOTPAGENAME}}.{{#titleparts: Talk:Foo/bar/baz/quok | 2 }}→ Talk:Foo/bar{{#titleparts: Talk:Foo/bar/baz/quok | 2 | 2 }}→ bar/baz{{#titleparts: Talk:Foo/bar/baz/quok | | 2 }}→ bar/baz/quok
Negative values are accepted for both values. Negative values for the number of segments to return parameter effectively 'strips' segments from the end of the string. Negative values for the first segment to return translates to "start with this segment counting from the right":
{{#titleparts: Talk:Foo/bar/baz/quok | -1 }}→ Talk:Foo/bar/baz Retira um segmento a partir do final da string. Ver também {{BASEPAGENAME}}.{{#titleparts: Talk:Foo/bar/baz/quok | -4 }}→ Retira todos os quatro segmentos a partir do final da string{{#titleparts: Talk:Foo/bar/baz/quok | -5 }}→ Retira 5 segmentos a partir do final da string (mais do que existe){{#titleparts: Talk:Foo/bar/baz/quok | | -1 }}→ quok Retorna o último segmento. Ver também {{SUBPAGENAME}}.{{#titleparts: Talk:Foo/bar/baz/quok | -1 | 2 }}→ bar/baz Retira um segmento a partir do final da string, em seguida, retorna o segundo segmento e mais além{{#titleparts: Talk:Foo/bar/baz/quok | -1 | -2 }}→ baz Inicia a cópia no penúltimo elemento; retira um segmento a partir do final da string
Before processing, the pagename parameter is HTML-decoded: if it contains some standard HTML character entities, they will be converted to plain characters (internally encoded with UTF-8, i.e. the same encoding as in the MediaWiki source page using this parser function).
- For example, any occurence of
",", or"in pagename will be replaced by". - No other conversion from HTML to plain text is performed, so HTML tags are left intact at this initial step even if they are invalid in page titles.
{{PAGENAME}} and similar) are known to return strings that are needlessly HTML-encoded, even if their own input parameter was not HTML-encoded:
The titleparts parser function can then be used as a workaround, to convert these returned strings so that they can be processed correctly by some other parser functions also taking a page name in parameter (such as {{PAGESINCAT:}} but which are still not working properly with HTML-encoded input strings.
For example, if the current page is Category:Côte-d'Or, then:
{{#ifeq: {{FULLPAGENAME}} | Category:Côte-d'Or | 1 | 0 }}, and{{#ifeq: {{FULLPAGENAME}} | Category:Côte-d'Or | 1 | 0 }}are both returning1; (the #ifeq parser function does perform the HTML-decoding of its input parameters).{{#switch: {{FULLPAGENAME}} | Category:Côte-d'Or = 1 | #default = 0 }}, and{{#switch: {{FULLPAGENAME}} | Category:Côte-d'Or = 1 | #default = 0 }}are both returning1; (the #switch parser function does perform the HTML-decoding of its input parameters).{{#ifexist: {{FULLPAGENAME}} | 1 | 0 }},{{#ifexist: Category:Côte-d'Or | 1 | 0 }}, or even{{#ifexist: Category:Côte-d'Or | 1 | 0 }}will all return1if that category page exists (the #ifexist parser function does perform the HTML-decoding of its input parameters);{{PAGESINCAT: Côte-d'Or }}will return a non-zero number, if that category contains pages or subcategories, but:{{PAGESINCAT: {{CURRENTPAGENAME}} }}, may still unconditionally return 0, just like:{{PAGESINCAT: {{PAGENAME|Category:Côte-d'Or}} }}{{PAGESINCAT: {{PAGENAME|Category:Côte-d'Or}} }}
The reason of this unexpected behavior is that, with the current versions of Mediawiki, there are two caveats:
{{FULLPAGENAME}}, or even {{FULLPAGENAME|Côte-d'Or}} may return the actually HTML-encoded string Category:Côte-d'Or and not the expected Category:Côte-d'Or, and that:
{{PAGESINCAT: Côte-d'Or }} unconditionally returns 0 (the PAGESINCAT magic keyword does not perform any HTML-decoding of its input parameter).
The simple workaround using titleparts (which will continue to work if the two caveats are fixed in a later version of MediaWiki) is:
{{PAGESINCAT: {{titleparts: {{CURRENTPAGENAME}} }} }}
{{PAGESINCAT: {{titleparts: {{PAGENAME|Category:Côte-d'Or}} }} }}
{{PAGESINCAT: {{titleparts: {{PAGENAME|Category:Côte-d'Or}} }} }}, that all return the actual number of pages in the same category.
Then the decoded pagename is canonicalized into a standard page title supported by MediaWiki, as much as possible:
- All underscores are automatically replaced with spaces:
{{#titleparts: Talk:Foo/bah_boo|1|2}} → bah boo Not bah_boo, despite the underscore in the original.
- A string é dividida em um máximo de 25 vezes; outras barras são ignoradas e o elemento 25 irá conter o resto da string. A string é também limitada a 255 caracteres, então ela é tratada como um título de página:
{{#titleparts: a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/aa/bb/cc/dd/ee | 1 | 25 }} → y/z/aa/bb/cc/dd/ee
- Se por qualquer motivo você precisava empurrar esta função ao seu limite, embora muito improvável, é possível contornar o limite de divisão de 25 pela chamada da função de aninhamento:
{{#titleparts: {{#titleparts: a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/aa/bb/cc/dd/ee| 1 | 25 }} | 1 | 2}} → z
- The list of substrings is not cleaned up hierarchically (unlike with the
{{PAGENAME}} magic keyword, the ./ and ../ relative path segments are left intact by #titleparts):
{{#titleparts: ../c/d }} → ../c/d
{{PAGENAME: ../c/d }} → '
- Finally the first substring is capitalized according to the capitalization settings of the local wiki (if that substring also starts by a local namespace name, that namespace name is also normalized).
{{#titleparts: talk:a/b/c }} → Talk:A/b/c
Pontos gerais
Substituição
Funções do analisador podem ser substituídas prefixando o caractere hash (#) com subst::
{{subst:#ifexist: Help:Extension:ParserFunctions/pt-br | [[Help:Extension:ParserFunctions/pt-br]] | Help:Extension:ParserFunctions/pt-br }} → o código [[Help:Extension:ParserFunctions/pt-br]] será inserida no wikitexto desde que a página Help:Extension:ParserFunctions/pt-br exista.
Substitution does not work within <ref>…</ref>, you can use {{subst:#tag:ref|…}} for this purpose.
Redirecionamentos
Especially {{#time:…|now-…}} could be handy in redirects to pages including dates, but this does not work.
Escaping pipe characters in tables
Parser functions will mangle wikitable syntax and pipe characters (|), treating all the raw pipe characters as parameter dividers. To avoid this, most wikis create the template Template:! with its contents only a raw pipe character (|) or use the {{!}} magic word which is available since MW 1.24. This 'hides' the pipe from the MediaWiki parser, ensuring that it is not considered until after all the templates and variables on a page have been expanded. It will then be interpreted as a table row or column separator. Alternatively, raw HTML table syntax can be used, although this is less intuitive and more error-prone.
You can also escape the pipe character for display as a plain, uninterpreted character using an HTML entity: | .
Descrição
Você digita
O resultado é
Escaping pipe character as table row/column separator
{{!}}
|
Escaping pipe character as a plain character
|
|
Remoção de espaço vazio
Whitespace, including newlines, tabs, and spaces, is stripped from the beginning and end of all the parameters of these parser functions. If this is not desirable, comparison of strings can be done after putting them in quotation marks.
{{#ifeq: foo | foo | equal | not equal }} → equal
{{#ifeq: "foo " | " foo" | equal | not equal }} → not equal
To prevent the trimming of then and else parts, see m:Template:If. Some people achieve this by using <nowiki> </nowiki> instead of spaces.
foo{{#if:|| bar }}foo → foobarfoo
foo{{#if:||<nowiki></nowiki> bar <nowiki></nowiki>}}foo → foo bar foo
However, this method can be used to render a single whitespace character only, since the parser squeezes multiple whitespace characters in a row into one.
<span style="white-space: pre;">foo{{#if:||<nowiki></nowiki> bar <nowiki></nowiki>}}foo</span> → foo bar foo
In this example, the white-space: pre style is used to force the whitespace to be preserved by the browser, but even with it the spaces are not shown. This happens because the spaces are stripped by the software, before being sent to the browser.
It is possible to workaround this behavior replacing whitespaces with   (breakable space) or (non-breakable space), since they are not modified by the software:
<span style="white-space: pre;">foo{{#if:||   bar   }}foo</span> → foo bar foo
foo{{#if:|| bar }}foo → foo bar foo
Ver também
[[Category:Extension helpTemplate:Translation|ParserFunctions]]
[[Category:Magic wordsTemplate:Translation]]