Usuário:Leone Melo/Testes/Parser
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}} |