Mudanças entre as edições de "Ajuda:Extension:ParserFunctions/pt-br"
m (uma edição) |
|
(Sem diferença)
|
Edição atual tal como às 09h13min de 19 de novembro de 2014
<languages />
A extensão ParserFunctions fornece funções adicionais ao analisador sintático, que suplementam as "palavras mágicas" já presentes no MediaWiki. Todas as funções fornecidas pela extensão têm a forma:
{{
{{#função: argumento 1 | argumento 2 | argumento 3 ...}}
}}
Índice
#expr
Predefinição:Hl1 | Tipo | Predefinição:Hl1 | Operadores |
---|---|
Predefinição:Hl2 | Agrupamento (parênteses) | ( )
|
Predefinição:Hl2 | Números | 1234.5 e (2.718) pi (3.142)
|
Predefinição:Hl2 | | operador binário e unários + ,-
|
Predefinição:Hl2 | Unários | not ceil trunc floor abs exp ln sin cos tan acos asin atan
|
Predefinição:Hl2 rowspan="3" | Binários | ^
|
* / div mod
| |
+ -
| |
Predefinição:Hl2 | Arredondamento | round
|
Predefinição:Hl2 rowspan="3" | Lógicos | = != <> > < >= <=
|
and
| |
or
|
Esta função calcula a expressão matemática e retorna o resultado.
{{#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 Predefinição:Meta.
When evaluating using boolean algebra, zero evaluates to false
and any nonzero value, positive or negative, evaluates to true
:
{{#expr: 1 and -1 }}
→ 1{{#expr: 1 and 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+ }}
→ Erro de expressão: Falta operando para +{{#expr: 1 foo 2 }}
→ Erro de expressão: Palavra "foo" não reconhecida
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 {{NUMBEROFUSERS}}, onde desejamos {{NUMBEROFUSERS}} que pode ser obtido por {{NUMBEROFUSERS}}. 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}}
→ 116{{#expr:{{formatnum:{{NUMBEROFUSERS}}|R}}+100}}
→ 116
{{ Predefinição:TNTN |O operador mod
retorna resultados errados para alguns valores do segundo argumento:
{{#expr: 123 mod (2^64-1)}}
→ Divisão por zero (produz uma string vazia; deve ser 123)
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.
Predefinição:Hl1 | Case de teste | Predefinição:Hl1 | Resultado | Predefinição:Hl1 | 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) |
colspan=3 Predefinição:Hl2 | 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 {{ Predefinição:TNTN |O sinal negativo em zero pode causar incompatibilidades de igualdade}} |
{{#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 |
colspan=3 Predefinição:Hl2 | 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 {{ Predefinição:TNTN |O sinal negativo em zero pode causar incompatibilidades de igualdade}} |
{{#expr: floor(-1/3) }} |
-1 | Baixando para o menor inteiro mais próximo, que é negativo |
{{#expr: ceil 1/3 }} |
0.333333333333 | Não arredondado uma vez que 1 já é um inteiro {{ Predefinição:TNTN |Interpretado como (ceil 1)/3, não ceil(1/3) como se poderia esperar}} |
#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
Um ou outro ou ambos os valores de retorno podem ser omitidos:
{{#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 do terceiro 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)}} }}
Veja Parser functions in templates para mais exemplos dessa função analisadora.
#ifeq
Predefinição:Anchor 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
{{ Predefinição:TNTN |Comparações numéricas com #ifeq
e #switch
não são equivalentes às comparações com #expr
:
{{#ifeq: 12345678901234567 | 12345678901234568 | equal | not equal}}
→ not equal{{#switch: 12345678901234567 | 12345678901234568 = equal | not equal}}
→ not equal
porque o PHP compara dois números do tipo integer, enquanto que:
{{#ifexpr: 12345678901234567 = 12345678901234568 | equal | not equal}}
→ equal
pois o MediaWiki converte números em expressões literais para o tipo float, o que, para inteiros grandes como estes, envolve arredondamento.
}}
{{ Predefinição:TNTN |Tags e funções de análise dentro das tags do analisador (como <nowiki>
) são substituídas temporariamente por um código único. Isso afeta as comparações:
{{#ifeq: <nowiki>foo</nowiki> | <nowiki>foo</nowiki> | equal | not equal}}
→ not equal{{#ifeq: <math>foo</math> | <math>foo</math> | equal | not equal}}
→ equal{{#ifeq: {{#tag:math|foo}} | {{#tag:math|foo}} | equal | not equal}}
→ equal{{#ifeq: [[foo]] | [[foo]] | equal | not equal}}
→ equal
Se as strings a serem comparadas são dadas como chamadas iguais para a mesma predefinição que contenha essas tags, então a condição é verdadeira, mas, no caso de duas predefinições com conteúdo idêntico contendo tais tags, ela é falsa. }}
{{ Predefinição:TNTN | Be careful when comparing against the current page title using the page name magic words. These magic words convert special characters into numeric HTML entities. This may result in misleading results. For example, if you are on a page titled "L'Aquila"...
{{#ifeq: L'Aquila | {{FULLPAGENAME}} | equal | not equal}}
→ not equal
To work around this, apply the magic word to both parameters:
{{#ifeq: {{FULLPAGENAME: L'Aquila}} | {{FULLPAGENAME}} | equal | not equal}}
→ equal
}}
#iferror
Esta função recebe uma string de entrada e retorna um de dois resultados; a função avalia a true
se a string de entrada contém um objeto HTML com class="error"
, como gerada por outras funções do analisador, tais como #expr
, #time
e #rel2abs
, erros de predefinições, tais como loops e recursões, e outros erros do analisador do tipo failsoft.
{{#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: <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 }}
→ Erro de expressão: Operador = inesperado
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 }}
A função é avaliada como true se a página existe, se ele contém conteúdo, está visivelmente em branco (contém meta-dados, como links de categoria ou palavras mágicas, mas sem conteúdo visível), está em branco, ou é um redirecionamento. Apenas páginas que estão com link em vermelho são avaliadas como false, inclusive se a página usada existir, mas foi eliminada.
{{#ifexist: Ajuda:Extension:ParserFunctions/pt-br | exists | doesn't exist }}
→ exists{{#ifexist: XXAjuda:Extension:ParserFunctions/pt-brXX | exists | doesn't exist }}
→ doesn't exist
A função é avaliada como true para mensagens de sistema que tenham sido personalizadas, e por páginas especiais que são definidas pelo software.
{{#ifexist: Especial:Páginas vigiadas | exists | doesn't exist }}
→ exists{{#ifexist: Especial:CheckUser | exists | doesn't exist }}
→ doesn't exist (pois a extensão CheckUser não 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 Especial:Páginas afluentes para a página de destino. Então, se o código {{#ifexist:Foo}} foi incluído em tempo real nesta página (Ajuda:Extension:ParserFunctions/pt-br), Especial:Páginas afluentes/Foo listará Ajuda: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: Arquivo:Example.png | exists | doesn't exist }}
→ doesn't exist{{#ifexist: Image:Example.png | exists | doesn't exist }}
→ doesn't exist{{#ifexist: Mídia:Example.png | exists | doesn't exist }}
→ doesn't exist
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:
é considerada uma "função dispendiosa"; apenas um número limitado de aparições podem ser incluídas em uma página (incluindo funções dentro de predefinições transcluídas). Quando este limite é excedido, qualquer outra aparição da função #ifexist:
automaticamente retornará false, se a página de destino existe ou não, e a página é categorizada em Category:Páginas com muitas chamadas a funções do analisador "parser". O nome da categoria de monitoramento pode variar dependendo do idioma do conteúdo de sua wiki.
Para alguns casos de uso, é possível emular o efeito da função com estilos CSS, usando os seletores a.new (para selecionar links para páginas que não existem) ou a:not(.new) (para selecionar links para páginas que existem). Além disso, uma vez que o número de funções do analisador dispendiosas que podem ser utilizadas em uma página única é controlado pela variável $wgExpensiveParserFunctionLimit, a mesma pode também aumentar o limite no arquivo LocalSettings.php, se necessário.
#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 | Ajuda:Foo/bar/baz }}
→ Ajuda:Foo/bar/baz/quok{{#rel2abs: ./quok | Ajuda:Foo/bar/baz }}
→ Ajuda:Foo/bar/baz/quok{{#rel2abs: ../quok | Ajuda:Foo/bar/baz }}
→ Ajuda:Foo/bar/quok{{#rel2abs: ../. | Ajuda:Foo/bar/baz }}
→ Ajuda: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/. | Ajuda:Foo/bar/baz }}
→ Ajuda:Foo/bar/quok{{#rel2abs: ../../quok | Ajuda:Foo/bar/baz }}
→ Ajuda:Foo/quok{{#rel2abs: ../../../quok | Ajuda:Foo/bar/baz }}
→ quok{{#rel2abs: ../../../../quok | Ajuda:Foo/bar/baz }}
→ Erro: Profundidade inválida no caminho: "Ajuda: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 permite que um editor [adicione informações em uma predefinição e esta informação será visível em várias outras predefinições, todas com uma formatação diferente.] Predefinição:ClarifyPredefinição:Examples
Padrão
O resultado padrão é retornado se nenhuma string case corresponder à string de comparação:
{{#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 }}
→
Agrupamento de resultados
É possível ter queda por meio de valores, onde vários strings case retornam a mesma string "resultado". Isso minimiza a duplicação.
{{#switch: comparison string | case1 = result1 | case2 | case3 | case4 = result2 | case5 = result3 | case6 | case7 = result4 | #default = default result }}
Aqui, os casos 2, 3 e 4 retornam result2; os casos 6 e 7 retornam result4
Comportamento de comparação
Tal como acontece com #ifeq
, a comparação é feita numericamente se tanto a string de comparação e a string case forem números; ou como uma string case-sensitive de outra forma:
{{#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
{{ Predefinição:TNTN |Comparações numéricas com #switch
e #ifeq
não são equivalentes com comparações em expressões (ver também acima):
{{#switch: 12345678901234567 | 12345678901234568 = A | B}}
→ B{{#ifexpr: 12345678901234567 = 12345678901234568 | A | B}}
→ A
}}
Sinais de igual brutos
Strings "case" não contêm sinais de igual brutos. Para contornar isso, crie uma predefinição Predefinição:Tl 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
Predefinição:Note Para um exemplo real simples da utilização desta função, verifique Template:NBA color. Dois exemplos complexos podem ser encontrados em Template:Extension e 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}}}}}}
#time
Predefinição:Hl1 | Código | Predefinição:Hl1 | Descrição | Predefinição:Hl1 | Saída atual (Limpe a cache desta página para atualizar) |
---|---|---|
Predefinição:Hl2 colspan="3"| Ano | ||
Y
|
Ano c/ quatro dígitos. | 2024 |
y
|
Ano c/ dois dígitos. | 24 |
L
|
1 se for ano bissexto, 0 se não for. | 1 |
o ¹
|
Código do ano ISO-8601 da semana especificada. ² | 2024 ³ |
¹ Requer o PHP 5.1.0 e mais recente e a revisão rev:45208. | ||
Predefinição:Hl2 colspan="3"| Mês | ||
n
|
Índice do mês sem zeros à esquerda. | 11 |
m
|
Índice do mês com zeros à esquerda. | 11 |
M
|
Uma abreviação do nome do mês, no idioma do site. | nov |
F
|
O nome completo do mês no idioma do site. | novembro |
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)
|
Predefinição:Hl2 colspan="3"| Semana | ||
W
|
Número da semana ISO 8601, com zeros à esquerda. | 46 |
Predefinição:Hl2 colspan="3"| Dia | ||
j
|
Dia do mês, sem zeros à esquerda | 15 |
d
|
Dia do mês, com zeros à esquerda | 15 |
z
|
Dia do ano (Janeiro 1 = 0). Predefinição:Note/pt-br Para obter o dia ISO do ano, adicione 1. |
319 |
D
|
Uma abreviação do dia da semana. Raramente internacionalizado. | sex |
l
|
Nome completo do dia. Raramente internacionalizado. | sexta-feira |
N
|
Dia da semana ISO 8601 (Segunda-feira = 1, Domingo = 7). | 5 |
w
|
Número do dia da semana (Domingo = 0, Sábado = 6). | 5 |
Predefinição:Hl2 colspan="3"| 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
|
Uppercase version of a above.
|
AM |
g
|
Hora no formato de 12 horas, sem zeros à esquerda. | 10 |
h
|
Hora no formato de 12 horas, com zeros à esquerda. | 10 |
G
|
Hora no formato de 24 horas, sem zeros à esquerda. | 10 |
H
|
Hora no formato de 24 horas, com zeros à esquerda. | 10 |
Predefinição:Hl2 colspan="3"| Minutos e segundos | ||
i
|
Minutos depois da hora, com zeros à esquerda. | 22 |
s
|
Segundos após o minuto, com zeros à esquerda. | 52 |
U
|
Segundos desde 1º. de Janeiro de 1970 00:00:00 GMT | 1731666172 |
id="TimeZone" Predefinição:Hl2 colspan="3"| 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 |
Predefinição:Hl2 colspan="3"| Diversos | ||
t
|
Número de dias do mês atual. | 30 |
c
|
Data formatada ISO 8601, equivalente a Y-m-dTH:i:s+00:00 .
|
2024-11-15T10:22:52+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.
|
Fri, 15 Nov 2024 10:22:52 +0000 |
Predefinição:Hl2 colspan="3" | Calendários não-Gregorianos | ||
Predefinição:Hl3 colspan="3" | Islâmicos | ||
xmj
|
Dia do mês. | 13 |
xmF
|
Nome completo do mês. | Jumada al-awwal |
xmn
|
Índice do mês. | 5 |
xmY
|
Ano completo. | 1446 |
Predefinição:Hl3 colspan="3" | Iraniano (Jalaly) | ||
xij
|
Dia do mês. | 25 |
xiF
|
Nome completo do mês. | Aban |
xin
|
Índice do mês. | 8 |
xiY
|
Ano completo. | 1403 |
xiy
|
Ano c/ dois dígitos. | 03 |
Predefinição:Hl3 colspan="3" | Hebraico | ||
xjj
|
Dia do mês. | 14 |
xjF
|
Nome completo do mês. | Cheshvan |
xjt
|
Número de dias no mês. | 30 |
xjx
|
Forma genitiva do nome do mês. | Cheshvan |
xjn
|
Número do mês. | 2 |
xjY
|
Ano completo. | 5785 |
Predefinição:Hl3 colspan="3" | Calendário solar tailandês | ||
xkY
|
Ano completo no Calendário solar tailandês. {{#invoke:Template translation|renderTranslatedTemplate|uselang=|namespace=|template=note|noshift=}} Para anos anteriores a 1941 as datas na faixa de Janeiro a Março não são adequadamente calculadas. |
2567 |
Predefinição:Hl3 colspan="3" | Ano Minguo/Juche | ||
xoY
|
Ano completo. | 113 |
Predefinição:Hl3 colspan="3" | Calendário de eras do Japão (nengo) | ||
xtY
|
Ano completo. | 平成36 |
Predefinição:Hl2 colspan="3" | 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}} → MMXXIV
|
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 }}
→ 2024-11-15{{#time: [[Y]] m d }}
→ 2024 11 15{{#time: [[Y (year)]] }}
→ 2024 (24UTCamFri, 15 Nov 2024 10:22:52 +0000){{#time: [[Y "(year)"]] }}
→ 2024 (year){{#time: i's" }}
→ 22'52"
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}}
→ Fri, 15 Nov 2024 10:22:52 +0000
{{#time: r|+2 hours}}
→ Fri, 15 Nov 2024 12:22:52 +0000
{{#time: r|now + 2 hours}}
→ Fri, 15 Nov 2024 12:22:52 +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 }}
→ 1731666172
{{#time: r|@1731666172}}
→ Fri, 15 Nov 2024 10:22:52 +0000
{{ Predefinição:TNTN |O intervalo de entrada aceitável é de 1º. de Janeiro de 0111 → 31 de Dezembro de 9999. Para os anos de 100 a 110, a saída é inconsistente, Y e os anos bissextos são como os anos 100-110, r, D, l e U são como interpretar esses anos como 2000-2010.
{{#time: d F Y | 29 Feb 0100 }}
→ 01 março 0100
(correto, sem ano bissexto), porém
{{#time: r | 29 Feb 0100 }}
→ Mon, 01 Mar 0100 00:00:00 +0000 (errado, mesmo que 100 seja interpretado como 2000, porque esse é um ano bissexto)
{{#time: d F Y | 15 April 10000 }}
→ Erro: tempo inválido
{{#time: r | 10000-4-15 }}
→ Sat, 15 Apr 2000 10:00:00 +0000
Números de ano 0-99 são interpretados como 2000-2069 e 1970-1999, mesmo quando escritos com zeros à esquerda:
{{#time: d F Y | 1 Jan 0069 }}
→ 01 janeiro 0069
{{#time: d F Y | 1 Jan 0070 }}
→ 01 janeiro 0070
O dia da semana é fornecido para os anos 100-110 e a partir de 1753, para os anos 111-1752 a saída à direita exibe "Unknown" e a saída à esquerda "<>". Como consequencia, a saída à direita não é aceita como entrada para esses anos.}}
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 }}
→ 2024
{{ Predefinição:TNTN |O recurso de preenchimento não é consistente; algumas partes são preenchidas com os valores atuais, outras não:
{{#time: Y m d H:i:s | June }}
→ 2024 06 15 00:00:00 Fornece o início do dia, porém o dia atual do mês e do ano em curso.
{{#time: Y m d H:i:s | 2003 }}
→ 2003 11 15 00:00:00 Fornece o início do dia, mas o dia atual do ano.
}}
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 11 15 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 }}
→ 2024 11 15 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}}
→ 2024-outubro
O comprimento total das strings de formato das chamadas de #time
se limita a 6000 caracteres [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 }} ==> 6:22 AM
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 }} ==> 7:22 PM
Para contornar este problema, basta converter o tempo em minutos ou segundos, assim:
- {{#time:g:i A | -270 minutes }} ==> 5:52 AM
- {{#time:g:i A | -16200 seconds }} ==> 5:52 AM
(Tim Starling, o desenvolvedor desta função, forneceu a sintaxe exata para esta solução.)
#timel
This function is identical to {{#time: ... }}
, except that it uses the local time of the wiki (as set in $wgLocaltimezone) when no date is given.
{{#time: Y-m-d }}
→ 2024-11-15{{#timel: Y-m-d }}
→ 2024-11-15{{#time: Y F d h:i:s}}
→ 2024 novembro 15 10:22:52{{#timel: Y F d h:i:s}}
→ 2024 novembro 15 07:22:52
#titleparts
Predefinição:Anchor Esta função separa um título de página em segmentos baseados em barras, em seguida, retorna alguns desses segmentos como saída.
{{#titleparts: pagename | number of segments to return | first segment to return }}
Se o parâmetro número de segmentos não for especificado, o padrão é "0", que retorna todos os segmentos do primeiro segmento (incluído). Se o parâmetro primeiro segmento não for especificado ou for "0", o padrão é "1":
{{#titleparts: Discussão:Foo/bar/baz/quok }}
→ Discussão:Foo/bar/baz/quok{{#titleparts: Discussão:Foo/bar/baz/quok | 1 }}
→ Discussão:Foo{{#titleparts: Discussão:Foo/bar/baz/quok | 2 }}
→ Discussão:Foo/bar{{#titleparts: Discussão:Foo/bar/baz/quok | 2 | 2 }}
→ bar/baz{{#titleparts: Discussão:Foo/bar/baz/quok | | 2 }}
→ bar/baz/quok
Os valores negativos são aceitos por ambos os valores. Os valores negativos para o número de segmentos 'retira' efetivamente segmentos a partir do final da string. Os valores negativos para o primeiro segmento se traduz em começar com este segmento a contar da direita:
{{#titleparts: Discussão:Foo/bar/baz/quok | -1 }}
→ Discussão:Foo/bar/baz Retira um segmento a partir do final da string. Ver também {{BASEPAGENAME}}.{{#titleparts: Discussão:Foo/bar/baz/quok | -4 }}
→ Retira todos os quatro segmentos a partir do final da string{{#titleparts: Discussão:Foo/bar/baz/quok | -5 }}
→ Retira 5 segmentos a partir do final da string (mais do que existe){{#titleparts: Discussão:Foo/bar/baz/quok | | -1 }}
→ quok Retorna o último segmento. Ver também {{SUBPAGENAME}}.{{#titleparts: Discussão: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: Discussão:Foo/bar/baz/quok | -1 | -2 }}
→ baz Inicia a cópia no penúltimo elemento; retira um segmento a partir do final da string
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
{{#invoke:Template translation|renderTranslatedTemplate|uselang=|namespace=|template=Warning|noshift=}} Você pode usar #titleparts como um simples "analisador e conversor de strings", mas saiba que ela retorna a primeira substring capitalizada.
{{#titleparts: one/two/three/four|1|1 }}
→ One{{#titleparts: one/two/three/four|1|2 }}
→ two
- Se letras minúsculas são necessárias, use a função
lc:
para controlar a saída.
{{lc: {{#titleparts: one/two/three/four|1|1 }} }}
→ one
- Você pode preceder uma barra 'simulada' no início da string para obter a capitalização correta da primeira substring (maiúscula ou minúscula). Use |2 em vez de |1 para retorno do primeiro segmento.
{{#titleparts: /one/two/three/four|1|2 }}
→ one{{#titleparts: /One/two/three/four|1|2 }}
→ One
{{#invoke:Template translation|renderTranslatedTemplate|uselang=|namespace=|template=warning|noshift=}} Certos caracteres que são ilegais em um título de página farão com que #titleparts não analise a string.
{{#titleparts: {one/two} | 1 | 1 }}
→ {one/two}. Não produz o esperado: {one
{{#invoke:Template translation|renderTranslatedTemplate|uselang=|namespace=|template=warning|noshift=}}
{{#titleparts: [[page]]/123 | 1 | 2 }}
→ page/123
{{#invoke:Template translation|renderTranslatedTemplate|uselang=|namespace=|template=warning|noshift=}} Esta função não se degrada normalmente se a sua entrada ultrapassar 255 caracteres. Se a string digitada é de 256 caracteres ou mais, esta função simplesmente descarta a string de volta para você.
Análise de strings
Uma extensão está disponível para análise de strings adicional, consulte Extension:StringFunctions.
Pontos gerais
Substituição
Funções do analisador podem ser substituídas prefixando o caractere hash (#) com subst:
:
{{subst:#ifexist: Ajuda:Extension:ParserFunctions/pt-br | [[Ajuda:Extension:ParserFunctions/pt-br]] | Ajuda:Extension:ParserFunctions/pt-br }}
→ o código [[Ajuda:Extension:ParserFunctions/pt-br]] será inserida no wikitexto desde que a página Ajuda:Extension:ParserFunctions/pt-br exista.
{{ Predefinição:TNTN |Os resultados das funções do analisador substituídas são indefinidos se as expressões contiverem código volátil não substituído como variáveis ou outras funções do analisador. Para obter resultados consistentes, todo o código volátil na expressão a ser avaliada deve ser substituído. Consulte Help:Substitution.}}
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 Predefinição:! 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 (most wikis) | {{!}} |
| |
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
For preventing trimming then- and else-parts, see m:Template:If. Some people use also <nowiki> </nowiki> instead of spaces.
Ver também
- Help:Parser functions in templates
- Help:Calculation (a ser movida do Meta para cá)
- Help:Newlines and spaces no Meta
- Help:Comparison between ParserFunctions syntax and TeX syntax no Meta
- Help:Magic words
- Extension:StringFunctions
- Extension:PhpTags