Saltar para o conteúdo

Usuário:Leone Melo/Testes/Parser

Origem: Wikipédia, a enciclopédia livre.

As palavras mágicas são aquelas reservadas pelo MediaWiki, o software usado pela Wikipédia, que fornecem instruções específicas para esse software. Há três tipos de palavras mágicas:

  • Modificadores comportamentais (behavior switches);
  • Funções sintáticas (parse functions);
  • Variáveis (variables).

Modificadores comportamentais

Os modificadores comportamentais ou behavior switches mudam o funcionamento da página em vez de retornar um valor. Na maioria dos casos é constituída por uma palavra em caixa alta entre duplos subtraços.

Índice de conteúdo (TOC)

O índice de conteúdo, também conhecido como table of contents (TOC), mostra todas as seções e subseções (até o nível 6, o menor nível possível). Dos cinco temas (skins em inglês), quatro deles apresentam o índice de conteúdo no texto, e só aparecem quando há pelo menos quatro seções (contando com subseções de qualquer nível e com a predefinição {{referências}}). Por padrão, o índice aparece antes da primeira seção. Para forçarmos o aparecimento do índice com menos de quatro seções no local padrão, podemos usar __FORCETOC__.

Se desejarmos colocar o índice em um lugar diferente do padrão, devemos usar __TOC__, que faz o índice aparecer exatamente no local onde essa palavra mágica é inserida, independentemente do número seções preexistentes.

As palavras mágicas __FORCETOC__ e __TOC__ não funcionam com o tema Vector (2022), em que o índice de conteúdo fica fora do conteúdo do artigo e aparece com qualquer número de seções.

Também podemos omitir o índice de conteúdo por meio da palavra mágica __NOTOC__. Ela pode ser colocada em qualquer parte da página que vai apresentar o mesmo resultado. Ao contrário das outras duas palavras mencionadas anteriormente, o __NOTOC__ funciona em qualquer tema padrão.

Comando Nota
__FORCETOC__ Força a exibição do índice no local padrão.
__TOC__ Coloca o índice no local em que essa palavra for inserida.
__NOTOC__ Esconde o índice da página atual.

Funções sintáticas

As funções sintáticas ou funções parser são uma extensão do MediaWiki que permitem criar predefinições mais sofisticadas. Elas têm uma cerquilha (#) no início, possuindo a seguinte sintaxe:

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

Função #expr

A função #expr realiza operações matemáticas. Ela não funciona com strings.

{{#expr: expressão matemática }}

Operações simples

A precisão de números reais é de 13 casas decimais. Na matemática de "módulo" e "valor absoluto" são geralmente tratados como sinônimos. No entanto, na computação eles possuem significados diferentes. O "valor absoluto" continua significando o valor do número sem o sinal da frente. Já "módulo" significa o resto de uma divisão.

Operação Operador O que digitamos Resultado na tela Notas
Adição + {{#expr: 1 + 2}} 3 a + b = a - (-b)
Subtração - {{#expr: 9 - 4}} 5 a - b = a - (+b) = (-b) + a
Multiplicação * {{#expr: 3 * 2}} 6 a × b = (-a) × (-b) = b × a = (-b) × (-a)
Divisão div {{#expr: 25 / 4}} 6.25 Os operadores / e div são equivalentes
/ {{#expr: 25 div 4}}
Parênteses () {{#expr: (6 + 4) * 3}} 30 Também conhecidos como operadores de grupo
Potenciação ^ {{#expr: 2 ^ 3}} 8 ab = c → 23 = 2 × 2 × 2 = 8
Raiz quadrada sqrt {{#expr: sqrt 81}} 9 √a = b → √81 = √(9 × 9) = 9
Exponencial exp {{#expr: exp 4}} 54.598150033144 exp = e ≅ 2.7 (número de Euler)
Logaritmo neperiano ln {{#expr: ln 100}} 4.6051701859881 eb = a → logea = ln a = b
Valor absoluto abs {{#expr: abs -7}} 7 |-a| = a → |-7| = 7
Módulo mod {{#expr: 28 mod 3}} 1 Resto da divisão

Operações de arredondamento

Nos países lusófonos, é usada a vírgula como separador decimal. No entanto, em computação é usado o ponto para isso.

O número após round indica quantos lugares à direita do decimal estão incluídos no arredondamento. Quando esse número após round é negativo, o arredondamento se dá para os números à esquerda do ponto, isto é, para a parte inteira. Esse arredondamento é feito para o número mais próximo.

Operação Operador O que digitamos Resultado na tela Notas
Truncamento trunc {{#expr: trunc 1.5}} 1 O número decimal 0.5 é ignorado, sobrando 1
{{#expr: trunc -1.5}} -1 O número decimal 0.5 é ignorado, sobrando -1
Arredondamento para cima ceil {{#expr: ceil 1.5}} 2 Como 1 < 1.5 < 2 ∴ vai retornar 2
{{#expr: ceil -1.5}} -1 Como -2 < 1.5 < -1 ∴ vai retornar -1
Arredondamento para baixo floor {{#expr: floor 1.5}} 1 Como 1 < 1.5 < 2 ∴ vai retornar 1
{{#expr: floor -1.5}} -2 Como -2 < 1.5 < -1 ∴ vai retornar -2
Arredondamento especificado round {{#expr: 40 / 7 round 3}} 5.714 40/7 = 5,7143 → 5,714
{{#expr: 40 / 7 round 1}} 5.7 40/7 = 5,7143 → 5,714 → 5,71 → 5,7
{{#expr: 4539 round -1}} 4540 4540 está mais próximo de 4539 do que 4530
{{#expr: 4539 round -2}} 4500 4500 está mais próximo de 4539 do que 4600

Operações trigonométricas

Os ângulos das funções trigonométricas são expressos em radianos, sendo π rad = 180°.

Operação Operador O que digitamos Resultado na tela
Seno sin {{#expr: sin 0.5}} 0.4794255386042
Cosseno cos {{#expr: cos 0.5}} 0.87758256189037
Tangente cos {{#expr: tan 0.5}} 0.54630248984379
Arco seno asin {{#expr: asin 1}} 1.5707963267949
Arco cosseno acos {{#expr: acos 1}} 0
Arco tangente atan {{#expr: atan 1}} 0.78539816339745

Operações comparativas

Se a proposição é «verdadeira», então retorna 1. Se a proposição é «falsa», então retorna 0.

Operação Operador O que digitamos Resultado na tela Notas
Igualdade = {{#expr: 7 = 5}} 0 Como 7 = 5 é falso, então retorna 0
{{#expr: 8 = 8}} 1 Como 8 = 8 é verdadeiro, então retorna 1
Desigualdade <> {{#expr: 7 <> 5}} 1 Como 7 ≠ 5 é verdadeiro, então retorna 1
!= {{#expr: 8 != 8}} 0 Como 6 ≠ 6 é falso, então retorna 0
Maior que > {{#expr: 20 > 9}} 1 Como 20 > 9 é verdadeiro, então retorna 1
{{#expr: 9 > 20}} 0 Como 9 > 20 é falso, então retorna 0
{{#expr: 20 > 20}} 0 Como 20 > 20 é falso, então retorna 0
Maior ou igual a >= {{#expr: 12 >= 8}} 1 Como 12 ≥ 8 é verdadeiro, então retorna 1
{{#expr: 12 >= 12}} 1 Como 12 ≥ 12 é verdadeiro, então retorna 1
{{#expr: 8 >= 12} 0 Como 8 ≥ 12 é falso, então retorna 0
Menor que < {{#expr: 20 < 9}} 0 Como 20 < 9 é falso, então retorna 0
{{#expr: 9 < 20}} 1 Como 9 < 20 é verdadeiro, então retorna 1
{{#expr: 9 < 9}} 0 Como 9 < 9 é falso, então retorna 0
Menor ou igual a <= {{#expr: 12 <= 8}} 0 Como 12 ≤ 8 é falso, então retorna 0
{{#expr: 8 <= 8}} 1 Como 8 ≤ 8 é verdadeiro, então retorna 1
{{#expr: 8 <= 12} 1 Como 8 ≤ 12 é verdadeiro, então retorna 1

Operações lógicas

Quando operadores lógicos são usados, o número 0 significa um valor lógico «falso». Já qualquer outro número, positivo ou negativo, é interpretado como «verdadeiro», e retorna o valor 1.

Operação Operador O que digitamos Resultado na tela Notas
NÃO lógico not {{#expr: not 6}} 0 Se não é verdadeiro, então é falso (0)
{{#expr: not 0}} 1 Se não é falso, então é verdadeiro (1)
{{#expr: not 0 * 7}} 7 not 0 * 7 = 1 * 7 = 7
{{#expr: not (0 * 7)}} 1 not (0 * 7) = not 0 = 1
E lógico and {{#expr: 12 < 8 and 4 < 2}} 0 F and F → F (retorna 0)
{{#expr: 12 > 8 and 4 < 2}} 0 V and F → F (retorna 0)
{{#expr: 12 > 8 and 4 > 2}} 1 V and V → V (retorna 1)
OU lógico or {{#expr: 12 < 8 or 4 < 2}} 0 F or F → F (retorna 0)
{{#expr: 12 > 8 or 4 < 2}} 1 V or F → V (retorna 1)
{{#expr: 12 > 8 or 4 > 2}} 1 V or V → V (retorna 1)

Função #se ou #if

Se a condição é uma string vazia ou consiste apenas de espaços em branco, então é considerada como «falsa», e a função retorna <senão texto>. Caso contrário, a função retorna <então texto>. O <senão texto> pode ser omitido; assim, se a condição for «falsa», a função devolve um texto vazio. Normalmente o parâmetro é passado na página em que o contéudo é transcluído.

{{#se: <condição> | <então texto> | <senão texto>}}
{{#if: <condição> | <então texto> | <senão texto>}}
O que digitamos O que vemos na tela
{{#se: | Certo | Errado}} Errado
{{#se: X| Certo | Errado}} Certo
{{#se: {{{parâmetro|A}}} | Parâmetro é definido. | Parâmetro não definido ou vazio}} Parâmetro é definido.
{{#se: {{{parâmetro|}}} | Parâmetro é definido. | Parâmetro não definido ou vazio}} Parâmetro não definido ou vazio
{{#se: {{{parâmetro|}}} | Parâmetro é definido.}}

Note que a função se não suporta sinais de "=" ou expressões matemáticas. {{#se: 1 = 2|sim|não}} irá devolver "sim", porque a string "1 = 2" não é vazia.

Função #seigual ou #ifeq

Essa função compara dois valores, que podem ser números ou strings, e retorna uma string se os valores foram equivalentes ou outra string se não forem equivalentes. Letras maiúsculas de letras minúsculas são interpretadas como diferentes (case-sentitive), assim como strings e números. Se <texto 1> for equivalente a <texto 2>, será mostrada a string <igual texto>. Caso <texto 1> seja interpretado como diferente de <texto 2>, vai retornar <não igual texto>.

{{#seigual: <texto 1> | <texto 2> | <igual texto> | <não igual texto>}}
{{#ifeq: <texto 1> | <texto 2> | <igual texto> | <não igual texto>}}
O que digitamos O que vemos na tela
{{#seigual: +05 | 005 | Equivalente | Diferente}} Equivalente
{{#seigual: "+05" | "005" | Equivalente | Diferente}} Diferente
{{#seigual: "5" | 5 | Equivalente | Diferente}} Diferente
{{#seigual: -5 | 9.5 | Equivalente | Diferente}} Diferente
{{#seigual: B | b | 1 | 0}} 0

Função #seerro ou #iferror

Esta função avalia se existe um erro na expressão, isto é, se é possível obter um resultado numérico. Se houver um erro em <expressão>, retorna <valor se verdadeiro>. Caso não haja erro, retorna <valor se falso>.

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

Como não há um erro na expressão {{#expr: 3 + 2}}, isto é, é possível extrair um resultado dessa expressão, vai retornar Falso. Já a {{#expr: x + 2}} retorna um erro, então retorna Verdadeiro. Se um

O que digitamos O que vemos na tela Notas
{{#seerro: {{#expr: 3 + 2}} | Verdadeiro | Falso}} Falso {{#expr: 3 + 2}} = 5
{{#seerro: {{#expr: x + 2}} | Verdadeiro | Falso}} Verdadeiro {{#expr: x + 2}} → Erro de expressão: Palavra "x" não reconhecida
{{#seerro: {{#expr: 4 mod 2}} | Há erro}} 0 {{#expr: 4 mod 2}} = 0
{{#seerro: {{#expr: 3 / 0}} | Há erro}} Há erro {{#expr: 3 / 0}} → Divisão por zero
{{#seerro: {{#expr: 3 ^ 2}} }} 9 {{#expr: 3 ^ 2}} = 9
{{#seerro: {{#expr: sqrt -4}} }} {{#expr: sqrt -4}} → Em sqrt: resultado não é um número

Função #seexpr ou #ifexpr

{{#seexpr: <expressão> | <então texto> | <senão texto>}}
{{#ifexpr: <expressão> | <então texto> | <senão texto>}}

Se não escrevermos as opções após a barra, dá um resultado vazio (independentemente se a expressão é verdadeira ou não). A exceção é quando há uma expressão inválida.

O que digitamos Resultado na tela
{{#seexpr: 8 >= 6 | Correto | Errado}} Correto
{{#seexpr: 8 <= 6 | Correto | Errado}} Errado
{{#seexpr: 8 >= 6}}
{{#seexpr: 8 <= 6}}
{{#seexpr: 8 / 0}} Divisão por zero

Função #se ou #if com #seexpr ou #ifexpr

Se a expressão calculada resulta em um resultado vazio (que é diferente do número 0), então é mostrado o <senão texto>. Caso a expressão calculada dê qualquer outro valor, independentemente se a expressão é correta ou não, resulta é mostrado o <então texto>.

{{#se: {{#seexpr: <expressão> | <então texto> | <senão texto>}} }}
{{#if: {{#ifexpr: <expressão> | <então texto> | <senão texto>}} }}
O que digitamos O que vemos na tela Notas
{{#se: {{#seexpr: 4 >= 3}} | Verdadeiro | Falso}} Falso {{#seexpr: 4 >= 3}} =
{{#se: {{#seexpr: 4 <= 3}} | Verdadeiro | Falso}} Falso {{#seexpr: 4 <= 3}} =
{{#se: {{#seexpr: 4 >= 3 | 1 | 0}} | Verdadeiro | Falso}} Verdadeiro {{#seexpr: 4 >= 3 | 1 | 0}} = 1
{{#se: {{#seexpr: 4 <= 3 | 1 | 0}} | Verdadeiro | Falso}} Verdadeiro {{#seexpr: 4 <= 3 | 1 | 0}} = 0
{{#se: {{#seexpr: 4 / 0}} | Verdadeiro | Falso}} Verdadeiro {{#seexpr: 4 / 0}} = Divisão por zero

Função #seexiste ou #ifexist

Se existir uma página na Wikipédia lusófona com o nome igual ao que consta em <nome do artigo>, retorna <existe o artigo>. Caso não exista uma página com esse nome, retorna <não existe o artigo>.

{{#seexiste: <nome do artigo> | <existe o artigo> | <não existe o artigo> }}
{{#ifexxist: <nome do artigo> | <existe o artigo> | <não existe o artigo> }}
O que digitamos O que vemos na tela Notas
{{#seexiste: Wikipédia | Sim | Não}} Sim Existe o artigo Wikipédia
{{#seexiste: wikipédia | Sim | Não}} Sim Não faz diferença se só alterar a primeira letra
{{#seexiste: WikiPédiA | Sim | Não}} Não É interpretado como se fosse outra página se alterar qualquer outra letra

Função #switch

Essa função compara o <valor de comparação> com o <valor1>, <valor2>, etc. Se o <valor de comparação> for igual ao <valor1>, será mostrado <resultado1>, se for igual ao <valor2>, será mostrado <resultado2>, e assim diante. Se o <valor de comparação> não for igual a nenhum dos valores, será mostrado o <resultado padrão>, que é colocado por último.

{{ #switch: <valor de comparação> | <valor1> = <resultado1> | <valor2> = <resultado2> | ... | <valorn> = <resultadon> | <resultado padrão>}}

A análise é feita da esquerda para a direita. O primeiro valor igual é mostrado na tela. É case-sensitive.

O que digitamos O que vemos na tela
{{#switch: 5 | 5 = cinco | 6 = seis | 7 = sete | valor não encontrado}} cinco
{{#switch: 6 | 5 = cinco | 6 = seis | 7 = sete | valor não encontrado}} seis
{{#switch: 9 | 5 = cinco | 6 = seis | 7 = sete | valor não encontrado}} valor não encontrado
{{#switch: "5" | 5 = cinco | 6 = seis | 7 = sete | valor não encontrado}} valor não encontrado
{{#switch: {{ns:0}} | = vazio | não vazio}} vazio
{{#switch: C | C = 0 | C = 1 }} 0
{{#switch: C | c = 0 | C = 1 }} 1
{{#switch: {{FULLPAGENAME}} | Wikipédia:Esplanada/geral = esplanada | Ajuda:Página principal = ajuda | Usuário:Leone Melo/Testes/Parser = nome da página atual | Outra página qualquer}} nome da página atual
{{#switch: {{{1}}} | Foo = Leo | baz = Baz | Bar}} Bar
{{#switch: {{{1|Foo}}} | Foo = Leo | baz = Baz | Bar}} Leo
{{#switch: {{#expr: 1 + 2}} | 2 = dois | 3 = três | Erro }} três
{{#switch: 1=2 | 1=2 = A | 1<'nowiki>=<'/nowiki>2 = B | 1{{=}}2 = C | default }} C

Variáveis

Esse tipo palavra mágica retorna um valor relacionado com a página atual ou com a data atual. A sintaxe é semelhante ao de uma predefinição, mas a função é diferente. Por exemplo, as variáveis não possuem uma página onde fica disponível um código que pode ser editado pelos usuários da Wikipédia.

Tipo Código Resultado
Nome das páginas
Esta é a subpágina {{SUBPAGENAME}} da página {{PAGENAME}}, do usuário {{ROOTPAGENAME}}. O domínio desta página é {{NAMESPACE}}, em que seu número associado é {{NAMESPACENUMBER}}. Já o nome completo, com o domínio e nome da página é {{FULLPAGENAME}}.
Esta é a subpágina Parser da página Leone Melo/Testes/Parser, do usuário Leone Melo. O domínio desta página é Usuário, em que seu número associado é 2. Já o nome completo, com o domínio e nome da página é Usuário:Leone Melo/Testes/Parser.
Data
Hoje é {{CURRENTDAYNAME}}, dia {{CURRENTDAY}} de {{CURRENTMONTHNAME}} de {{CURRENTYEAR}}.
Hoje é terça-feira, dia 17 de setembro de 2024.
Metadados
Olá, o endereço URL da {{SITENAME}} é https:{{SERVER}}. O endereço URL da minha página de usuário é https:{{fullurl:Usu%C3%A1rio:Leone_Melo}}.
Olá, o endereço URL da Wikipédia é https://pt.wikipedia.org. O endereço URL da minha página de usuário é https://pt.wikipedia.org/wiki/Usu%C3%A1rio:Leone_Melo.

Domínios

O comando {{ns:}}, juntamente com um número inteiro específico ou com o nome do domínio em inglês, retorna o nome do domínio em português na Wikipédia.

Código Resultado na tela Código Resultado na tela Código Resultado na tela
{{ns:-1}} Especial {{ns:1}} Discussão {{ns:2}} Usuário(a)
{{ns:Special}} {{ns:Talk}} {{ns:User}}
{{ns:3}} Usuário(a) Discussão {{ns:4}} Wikipédia {{ns:5}} Wikipédia Discussão
{{ns:User talk}} {{ns:Project}} {{ns:Project talk}}
{{ns:6}} Ficheiro {{ns:7}} Ficheiro Discussão {{ns:8}} MediaWiki
{{ns:Image}} {{ns:Image talk}} {{ns:MediaWiki}}
{{ns:9}} MediaWiki Discussão {{ns:10}} Predefinição {{ns:11}} Predefinição Discussão
{{ns:MediaWiki talk}} {{ns:Template}} {{ns:Template talk}}
{{ns:12}} Ajuda {{ns:13}} Ajuda Discussão {{ns:14}} Categoria
{{ns:Help}} {{ns:Help talk}} {{ns:Category}}
{{ns:15}} Categoria Discussão {{ns:100}} Portal {{ns:101}} Portal Discussão
{{ns:Category talk}}

Ver também