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

[editar | editar código-fonte]

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)

[editar | editar código-fonte]

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

[editar | editar código-fonte]

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

[editar | editar código-fonte]

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

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

Operações simples

[editar | editar código-fonte]

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

[editar | editar código-fonte]

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

[editar | editar código-fonte]

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

[editar | editar código-fonte]

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

[editar | editar código-fonte]

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

[editar | editar código-fonte]

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

[editar | editar código-fonte]

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

[editar | editar código-fonte]

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

[editar | editar código-fonte]
{{#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

[editar | editar código-fonte]

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

[editar | editar código-fonte]

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

[editar | editar código-fonte]

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 6 | 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}}} | eu = Leone | bra = Brasil | Mel}} Mel
{{#switch: {{{1|eu}}} | eu = Leone | bra = Brasil | Mel}} Leone
{{#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

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 10 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.

Cada domínio possui um número inteiro associado. Ao colocarmos o nome do domínio em inglês ou seu respectivo número após os dois pontos no comando {{ns:}}, vamos obter o nome do domínio em português.

O número associado ao domínio principal é 0, de modo que ao colocarmos {{ns:0}} não vai retornar nada, pois os verbetes do domínio principal não possuem um namespace explícito, isto é, uma palavra seguida por dois pontos antes do nome da página propriamente dita.

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}}