Ajuda: funções do analisador
![]() |
Esta página descreve as funções do analisador que podem ser inseridas no wikicode para processar cadeias de caracteres e números. Eles são especialmente úteis na criação de modelos . As funções do analisador também podem usar variáveis Mediawiki .
Alguns são fornecidos pela extensão MediaWiki ParserFunctions e têm sintaxe:
{{# nome da função: argumento 1 | argumento 2 | argumento 3 ...}}
Outros são funções básicas do MediaWiki e geralmente têm sintaxe:
{{nome da função: argumento}}
Os espaços ao redor de {{
, }}
e |
eles não são relevantes na sintaxe, portanto, por exemplo {{ #nomefunzione: argomento 1 | argomento 2 }}
é equivalente a {{#nomefunzione:argomento 1|argomento 2}}
.
Funções mais complexas do que essas podem ser realizadas por meio de módulos .
expr
A função expr
processa operações matemáticas. Os operadores suportados, em ordem de precedência, são:
Operador | Operação | Exemplo |
---|---|---|
- | Negação unária | {{#expr: - 7}} = -7 |
exp | Exponencial | {{#expr: exp 3}} = 20,085536923188 |
em | Logaritmo natural | {{#expr: ln 100}} = 4,6051701859881 |
abdômen | Valor absoluto | {{#expr: abs -2}} = 2 |
trunc | Arredondando para baixo | {{#expr: trunc 1.5}} = 1 {{#expr: trunc -1.5}} = -1 |
piso | Arredondando para baixo | {{#expr: floor 1.5}} = 1 {{#expr: floor -1.5}} = -2 |
Existe o | Arredondamento para cima | {{#expr: ceil 1.5}} = 2 {{#expr: ceil -1.5}} = -1 |
sin , cos , tan | Funções trigonométricas (em radianos) | {{#expr: sin 1}} = 0,8414709848079 |
asin , acos , atan | Funções trigonométricas inversas | {{#expr: asin 0,5}} = 0,5235987755983 |
não | NÃO Lógico | {{#expr: não 7}} = 0 |
^ | Exponenciação | {{#expr: 30 ^ 7}} = 21870000000 |
* | Multiplicação | {{#expr: 30 * 7}} = 210 |
/ ou div | Divisão | {{#expr: 30/7}} = 4,2857142857143 |
mod | Módulo, retorna o resto de uma divisão | {{#expr: 30 mod 7}} = 2 |
+ | Adição | {{#expr: 30 + 7}} = 37 |
- | Subtração | {{#expr: 30 - 7}} = 23 |
volta | Arredonde para o número mais próximo. O segundo operando é o número de decimais; se for negativo, arredondar para 10, 100 ... | {{#expr: 1,2345 rodada 2}} = 1,23 {{#expr: 1,2378 rodada 2}} = 1,24 {{#expr: 5432 rodada -2}} = 5400 |
= | Igualdade | {{#expr: 30 = 7}} = 0 |
<> ou ! = | Desigualdade | {{#expr: 30 <> 7}} = 1 |
< | Menor | {{#expr: 30 <7}} = 0 |
> | Maior | {{#expr: 30> 7}} = 1 |
<= | Menor ou igual | {{#expr: 30 <= 7}} = 0 |
> = | Maior ou igual | {{#expr: 30> = 7}} = 1 |
e | E lógico | {{#expr: 30 e 7}} = 1 |
ou | OR lógico | {{#expr: 30 ou 7}} = 1 |
() | Colchetes | {{#expr: (30 + 7) * 7}} = 259 |
Os números devem ser inseridos em notação de computador, sem separadores de milhares e com o ponto como separador decimal, por exemplo. 12345.67
; eles são devolvidos da mesma forma na saída. Espaços entre operadores não são necessários.
Os operadores booleanos tratam 0 como falso e qualquer número diferente de zero como verdadeiro. Na saída, o verdadeiro é retornado como 1.
As constantes "e" (número de Euler) e "pi" (pi) estão disponíveis.
Exemplo:
{{#expr: (100 - 32) / 9 * 5 rodada 0}}
retorna:
38
que é 100 ° F em ° C, arredondado para o número inteiro mais próximo.
As páginas que contêm erros nas funções expr (expressões mal formadas, divisão por zero ...) são colocadas em Categoria: Páginas com erros nas expressões .
E se
A função if
é uma construção if-then-else. Sintaxe:
{{#if: <condição> | <então texto> | <caso contrário, texto> }}
Se a condição consistir em uma string vazia ou um espaço, ela será considerada falsa e, caso contrário, o texto será retornado. Caso contrário, o texto será retornado. caso contrário, o texto pode ser omitido: neste caso, o resultado ficará vazio se a expressão for falsa.
Exemplo:
{{Modelo | parâmetro = algo}} {{Modelo}} {{Modelo | parâmetro =}} | | | | | | | | | {{#if: {{{parameter |}}} | O parâmetro é indicado. | O parâmetro não é indicado ou está vazio. }}
Observe que a função if
não suporta o sinal "=" ou expressões matemáticas. {{#if: 1 = 2|sì|no}}
retornará "sim", porque a string "1 = 2" não está vazia. A função if
é concebida como uma função if defined
. Para comparar strings, use ifeq
. Para comparar números, use ifexpr
.
Para verificar se uma ou outra condição é verdadeira, você pode escrever:
{{#if: {{{A |}}} {{{B |}}} | A ou B | nem A nem B}}
Para verificar se ambas as condições são verdadeiras, você pode escrever:
{{#if: {{#if: {{{A |}}} | {{{B |}}}}} | A e B | A vazio ou B vazio}}
Para ver quais condições são verdadeiras, você pode escrever:
{{#if: {{{A |}}} | {{#if: {{{B |}}} | A e B | apenas A}} | {{#if: {{{B |}}} | apenas B | nem A nem B}} }}
ifeq
A função ifeq
compara duas strings e retorna outra string que depende do resultado da comparação. Sintaxe:
{{#ifeq: <texto 1> | <texto 2> | <se eles forem iguais, retorna isso> | <caso contrário, este> }}
iferror
A função iferror
recebe uma string como entrada e retorna outra string das duas possíveis; a saída depende da string de entrada, se esta contém um objeto HTML com class="error"
(que pode ser gerado por outras funções do analisador como #expr
e #time
ou por modelo) o primeiro é retornado, caso contrário, o segundo.
{{#iferror <string> | <se a string retornar um erro> | <se a string estiver correta> }}
Uma ou ambas as strings de saída podem ser colocadas. Se a string a ser escrita for omitida no caso de a string de entrada ser exata, o valor da string de entrada será retornado. Se a string a ser escrita for omitida, caso a string de entrada esteja errada, uma string vazia é retornada na saída:
{{#iferror: {{#expr: 1 + 2 }} | errore | corretta }}
→ correto{{#iferror: {{#expr: 1 + X }} | errore | corretta }}
→ erro{{#iferror: {{#expr: 1 + 2 }} | errore }}
→ 3{{#iferror: {{#expr: 1 + X }} | errore }}
→ erro{{#iferror: {{#expr: 1 + 2 }} }}
→ 3{{#iferror: {{#expr: 1 + X }} }}
→{{#iferror: <strong class="error">a</strong> | errore | corretta }}
→ erro
ifexpr
A função ifexpr
resolve uma expressão matemática e retorna um texto com base no resultado.
{{#ifexpr: <expressão> | <então texto> | <caso contrário, texto> }}
Se a expressão corresponder, o texto será retornado; caso contrário , o texto será retornado. A sintaxe das expressões é a mesma de expr
.
se existe
ifexist
retorna um de dois resultados, com base na existência ou não de uma determinada página em it.wiki.
O primeiro parâmetro é o título a ser pesquisado, o segundo é o resultado a retornar se a página existir e o terceiro é o resultado a retornar se a página não existir. Se o primeiro parâmetro não for um título válido, a função retorna o resultado negativo.
-
{{#ifexist:Biologia|La voce [[biologia]] esiste!|La voce [[biologia]] non esiste.}}
- retorna "Existe entrada de biologia !" porque a biologia existe.
-
{{#ifexist:Aiuto:Funzioni parser|Sì|No}}
- retorna "Sim".
-
{{#ifexist:m:Help:Calculation|Sì|No}}
- retorna "Não", apesar da existência dem: Help: Calculation , devido ao prefixo interwiki.
NB : ifexist é uma função cara
Existência de arquivos
ifexist
também permite que você teste a disponibilidade de um arquivo, neste caso independentemente de ser local ou no Commons , indicando o arquivo com o namespace virtual Media
Pelo contrário, com File
, Immagine
ou Image
testamos a existência local da página de descrição do arquivo.
Assim:
-
{{#ifexist: Media: Example.png | il file esiste su Commons o in locale | il file non esiste né su Commons né in locale }}
- retorna "o arquivo existe em comuns ou localmente"
Em vez de:
-
{{#ifexist: File:Example.png | esiste una pagina locale | non esiste una pagina locale }}
- retorna "não há página local"
trocar
A função switch
compara uma string com outras, retornando uma determinada string se encontrar uma correspondência. Sintaxe:
{{#switch: <valor de comparação> | <valor 1 > = <resultado 1 > | <valor 2 > = <resultado 2 > | ... | <valor n > = <resultado n > | # default = <resultado padrão> }}
switch
irá pesquisar todos os valores fornecidos até encontrar uma correspondência. Quando uma correspondência é encontrada, o resultado atribuído a esse valor (o texto após o sinal de igual) é retornado. Se nenhuma correspondência for encontrada, mas o último elemento não tiver um sinal de igual, ele será retornado como o valor padrão.
Também é possível atribuir um resultado a vários valores, evitando a duplicação de texto. Por exemplo:
{{#switch: <valor de comparação> | <valor 1 > | <valor 2 > | <valor 3 > = <resultado 3 > | ... | <valor n > = <resultado n > | # default = <resultado padrão> }}
Observe que o valor 1 e o valor 2 não contêm o símbolo de igual. Se uma correspondência fosse encontrada, o resultado atribuído a um valor 3 (resultado 3 ) seria retornado.
Formatação
Maiúsculas e Minúsculas
resumo rápido:
- Primeira capitalização:
{{ucfirst:}}
-Funzioni parser
- primeira letra minúscula:
{{lcfirst:}}
-funzioni parser
- TODOS
FUNZIONI PARSER
MAIÚSCULAS:{{uc:}}
-FUNZIONI PARSER
- todas em minúsculas:
{{lc:}}
-funzioni parser
lc
Minúsculas acrónimo (em letras minúsculas): transforma texto em caracteres minúsculos.
Com {{lc:AbCdEf}}
você obtém abcdef.
Com {{lc:Ä Β Ç}}
obtemos ä β ç, dado ä β ç.
uc
Acrónimo em maiúsculas (tudo em maiúsculas): transforma um texto em caracteres maiúsculos.
Com {{uc:AbCdEf}}
você obtém ABCDEF.
Com {{uc:ä β ß}}
obtemos Ä Β ß.
primeiro
Sigla de minúsculas primeiro (primeiro minúsculas): transforma o primeiro caractere de um texto em minúsculas: com {{lcfirst:Ab Cd}}
você obtém ab Cd.
primeiro
Acrônimo para maiúsculas primeiro (primeira letra maiúscula): transforma o primeiro caractere de um texto em letras maiúsculas: com {{ucfirst:aB cD}}
você obtém AB cD.
formatnum
Adicione o ponto decimal e separadores de milhares a um número puro.
Mil separadores são inseridos apenas na parte inteira (antes da vírgula), não na parte fracionária (após a vírgula).
O número fornecido na entrada deve ser inserido em notação de computador, sem separadores de milhares e com o ponto como separador decimal, por exemplo. 12345.67
, como aqueles fornecidos na entrada e retornados na saída por #expr .
Com {{formatnum:1234.56}}
, obtemos 1 234,56
Com {{formatnum:1234567.8901234}}
, obtemos 1 234 567.8901234
A presença de notas juntamente com o número não traz problemas, são ignoradas e devolvidas tal como estão.
Caracteres não numéricos, excluindo separadores, também são ignorados e mantidos. No entanto, esta prática está obsoleta e faz com que a página seja colocada na categoria: Páginas com argumentos formatnum não numéricos .
Com {{formatnum:''I numeri sono 1234 e 5678<ref>Prova.</ref>''}}
você obtém Os números são 1 234 e 5 678 [1]
Você pode fazer isso de outra maneira, adicionando R como o segundo parâmetro: com {{formatnum:1 234 567,89|R}}
você obtém 1 234 567,89 (espaços não são espaços normais, mas espaços de quebra de caracteres).
padleft e padright
Adiciona caracteres de preenchimento à esquerda, tornando a string um comprimento fixo. Sintaxe:
{{padleft: string | comprimento | o preenchimento}}
Com {{padleft:ciao|10|+-}}
você obtém +-+-+-ciao
padright
tem o mesmo efeito, mas preenche o lado direito. Exemplo: {{padright:ciao|10|+-}}
gera: ciao+-+-+-
padleft
ou padright
podem ser usados para obter os primeiros N caracteres de uma string de comprimento ≥ N: com {{padleft:|3|Tizio}}
você obtém Tiz
plural
Mostra uma string diferente dependendo se o argumento é "1" ou um número maior.
{{plural: N | singular | plural}}
Com {{plural:3|casa|case}}
obtemos case
O padrão com parâmetro vazio ou não reconhecido é "plural". "1" seguido por outras palavras e "-1" são reconhecidos como singulares.
Tempo
A função de time
é uma construção para formatar o tempo. Sintaxe:
{{#time: format }}
ou
{{#time: format | tempo }}
Se um valor para a hora não for especificado, a data e a hora da conversão da página em HTML (na Hora Universal Coordenada ) serão usadas. Observe que, devido ao mecanismo de cache, esse valor pode diferir consideravelmente do momento em que a página é exibida. Para atualizar o valor é necessário salvar a página (sem modificá-la, ou seja, "editar nulo"), ou exibi-la solicitando a limpeza do cache ( &action=purge
adicionado ao url) ou selecionar o opção que desativa o cache das páginas em suas preferências.
A função #timel
é análoga a #time
, mas usa o fuso horário local de it.wiki ( UTC + 1 com possível horário de verão ) em vez do Tempo Universal Coordenado.
Parâmetro de formato
O parâmetro de formato é uma string que usa uma sintaxe semelhante à usada em datas no PHP [2] .
formatação rápida
-
-{{#timel:j FY}}
17 agosto 2021
-
-{{#timel:Ymd}}
2021-08-17
-
-{{#timel:lj FYG:s}}
martedì 17 agosto 2021 2:19
-martedì 17 agosto 2021 2:19
-
-{{#timel:D j MY h:sa}}
mar 17 ago 2021 02:19 am
-
-{{#timel:Ymd H:s}}
2021-08-17 02:19
Parâmetro | Descrição | saída equivalente com | Variáveis Equivalentes | ||
---|---|---|---|---|---|
# vez | # timel | Hora UTC | Horário local | ||
Ano | |||||
Y | em 4 dígitos | 2021 | 2021 | {{ANO ATUAL}} | {{LOCALYEAR}} |
y | em 2 dígitos | 21 | 21 | - | - |
eu | 1 se salto, 0 caso contrário | 0 | 0 | - | - |
Mês | |||||
F. | Nome completo | agosto | agosto | {{CURRENTMONTHNAME}} | {{LOCALMONTHNAME}} |
M. | Nome curto | agulha | agulha | {{CURRENTMONTHABBREV}} | {{LOCALMONTHABBREV}} |
m | Número do mês (01 - 12) | 08 | 08 | {{MÊS ATUAL}} | {{LOCALTMONTH}} |
n | Número do mês (1 - 12) | 8 | 8 | ||
t | Número de dias no mês | 31 | 31 | ||
Dia | |||||
d | Dia do mês (01 - 31). | 17 | 17 | {{CURRENTDAY2}} | {{LOCALDAY2}} |
j | Dia do mês (1 - 31). | 17 | 17 | {{DIA ATUAL}} | {{LOCALDAY}} |
z | Dia do ano (0 - 364 [3] ) | 228 | 228 | ||
eu | Nome completo | terça | terça | {{CURRENTDAYNAME}} | {{LOCALDAYNAME}} |
D. | Nome curto | março | março | ||
Não. | ISO 8601 dia da semana (1 (segunda-feira) - 7 (domingo)) | 2 | 2 | {{SEMANA ATUAL}} | {{LOCALWEEK}} |
C | Dia da semana (0 (domingo) - 6 (sábado)) | 2 | 2 | ||
Semanas | |||||
C | Semana do ano (01 - 52) | 33 | 33 | {{SEMANA ATUAL}} | {{LOCALWEEK}} |
Horas | |||||
H: sim | Hora: minutos (00:00 - 23:59) | 00:24 | 02:24 | {{HORA ATUAL}} | {{HORÁRIO LOCAL}} |
H. | Formato de hora 24 horas (00 - 23) | 00 | 02 | {{CURRENTHOUR}} | {{LOCALHOUR}} |
G. | Formato de hora de 24 horas (0 - 23) | 0 | 2 | ||
h | Formato de 12 horas de tempo (01 - 12) | 12 | 02 | ||
g | Formato de 12 horas de tempo (1 - 12) | 12 | 2 | ||
para | AM ou PM | sou | sou | ||
PARA | AM ou PM | SOU | SOU | ||
a | O minuto (00 - 59) | 24 | 24 | ||
s | O segundo (00 - 59) | 19 | 19 |
Os caracteres não reconhecidos permanecem inalterados. Existem duas técnicas para evitar o processamento de caracteres inseridos em strings de descrição:
- coloque o mesmo entre aspas duplas (aspas simples não serão consideradas)
- Correto:
{{ #time: "Attualmente è" F}}
→ Atualmente é agosto - Incorreto:
{{ #time: Attualmente è F}}
→ AM3131uMonday08UTC831UTC é agosto - Aspas simples:
{{ #time:G:i's"}}
→ 0: 24'19"
- Correto:
- Use o caractere de escape "\".
-
→ H{{ #time:\H}}
-
→"{{ #time:\"}}
-
Parâmetro de tempo
O formato do parâmetro de tempo é idêntico ao usado pela função strtotime () do PHP. Suporta datas absolutas e relativas. As datas devem ser em inglês, ou seja, "11 de dezembro" e não "11 de dezembro" e "+10 horas" e não "+10 horas". Este recurso pode ser usado para o gerenciamento de "fusos horários" ou para a conversão da hora UTC usada por padrão para a hora CET ou CEST usada na Itália. Para obter mais informações, consulte o manual GNU tar .
Exemplos
-
{{#time:G:i's"|+1 hours}}
→ 1: 24'19" retorna CET (hora padrão) -
{{#time:G:i's"|+2 hours}}
→ 2: 24'19" retorna o horário CEST (horário de verão) -
{{#time:j FY|-14 days}}
retorna 3 de agosto de 2021 (14 dias atrás) -
{{#time:H:i|+6 hours}}
retorna 06:24 (6 horas mais UTC ) -
{{#time:H:i|8:15 +6 hours}}
retorna 14:15 -
{{#time:m/Y|-1 months}}
retorna 07/2021 (1 mês atrás) -
{{#time:d/m|25 dicembre}}
retorna Erro: hora inválida. (25 de dezembro) -
{{#time:d/m|December 25}}
retorna 25/12 (25 de dezembro)
"-1" e "último" são equivalentes, assim como "+1" e "próximo".
Faixa de validade
O intervalo de datas tratado corretamente por esta função é de 1970-1-1 00:00:01 a 2038-1-19 03:14:07 (1 a 2 31 segundos desde o início de 1970).
Rotas
urlencode
Converta texto em formato compatível com URL substituindo espaços por "+" e outros caracteres de formatação de url por seus equivalentes: {{urlencode:hello world ?&=#/:}}
Rende hello + world +% 3F% 26% 3D% 23 % 2F% 3A.
rel2abs
Converte um caminho, seja um URL ou o título de uma subpágina da Wikipedia, de relativo para absoluto. Sintaxe:
{{# rel2abs: caminho relativo | caminho de base}}
O primeiro parâmetro, como nos caminhos de pasta do Windows / Unix, pode conter uma combinação de:
-
.
(rota atual) -
..
(nível superior) -
/nome
(nome da subpágina)
O segundo parâmetro, se omitido, é o título da página atual.
Com {{#rel2abs: ../cccc | aaaaa/bbb }}
resulta em aaaaa/cccc
partes do título
Extrai de um caminho, seja um URL ou o título de uma subpágina da Wikipedia, os componentes de diferentes níveis separados por "/". Sintaxe:
{{#titleparts: caminho | número de peças | parte inicial}}
O padrão é "tudo" para o número de peças e 1 para a parte inicial. Os números negativos permitem que você conte a partir da parte inferior (direita).
Com {{#titleparts: aaaa/bbb/cc/ddd/ee | 3 | 2 }}
você obtém bbb/cc/ddd
Com {{#titleparts: https://wikipedia.org/yyy/zz | 3 | 1 }}
você obtém Https://wikipedia.org (o // conta como dois níveis)
Ele suporta um máximo de 25 níveis e 255 caracteres e não funciona com alguns personagens. Recomenda-se usá-lo apenas com caminhos e não para outros "truques".
marcação
A função de tag
gera uma tag XML específica do wikicode, como <ref> ou <gallery>, incluindo a tag de fechamento. Sintaxe:
{{#tag: <nome da tag> | <conteúdo> | <atributo1> = <valor1> | <atributo2> = <valor2> ...}}
Exemplo:
{{#tag: ref | Conteúdo | nome = Nome}}
É equivalente a <ref name="Nome">Contenuto</ref>
e retorna: [4]
A função é particularmente útil quando um modelo precisa gerar uma tag que também contém wikicode complexo, porque garante que a tag seja processada após seu conteúdo (caso contrário, o conteúdo pode não funcionar). Ele também garante que quaisquer tags presentes no código não executado (como a parte negada de um #if) não sejam processadas erroneamente.
De outros
- invocar
- veja a ajuda: Formulários
- propriedade
- veja a ajuda: Wikidata
- Gênero sexual
- Normalmente usado em modelos de alerta do usuário. Dado um nome de usuário, ele retorna uma string diferente dependendo do sexo do usuário, se especificado em suas preferências. Sintaxe
{{gênero: nome | masculino | feminino | desconhecido }}
Se você não especificar um texto para "desconhecido", o padrão é masculino. Se o nome estiver vazio, use o usuário atual.
Funções onerosas
Algumas funções e variáveis são caras , ou seja, seu cálculo requer um "esforço" relativamente alto para o sistema. Normalmente, são funções e variáveis que solicitam informações sobre outra página, como ifexist. Também há um limite para o número dessas funções que podem ser chamadas a partir de uma página; se você passar, as chamadas param de funcionar e a página é colocada em Categoria: Páginas com muitas chamadas para funções de analisador .
Portanto, não exagere no uso dessas funções, especialmente em modelos que estão incluídos muitas vezes na mesma página. Em geral, as funções correspondentes disponíveis em Lua são igualmente caras, portanto os módulos não resolvem o problema.
Observação
- ^ Experimente.
- ^http://www.php.net/date
- ^ 0 - 365 para anos bissextos
- ^ Conteúdo
Páginas relacionadas
Outros projetos
Para informações técnicas completas e atualizadas:
-
O Wikisource contém uma página de funções de analisador
-
O Wikiquote contém citações sobre funções de analisador
-
O Wikilivros contém textos ou manuais sobre funções de analisador
-
Wikiversidade contém recursos em funções de analisador
-
Mediawiki contém informações sobre funções de analisador