Ajuda: funções do analisador

Da Wikipédia, a enciclopédia livre.
Ir para a navegação Ir para a pesquisa
Abreviações
WP: PARSER
WP: Parser
WP: Análise
Ajuda: Analisador
Ajuda: Análise
Gnome-help.svg - Balcão de informações

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

Abreviações
Ajuda: 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

Abreviações
Ajuda: mudar

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"
  • Use o caractere de escape "\".
    • {{ #time:\H}} → 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

Ícone da lupa mgx2.svg O mesmo tópico em detalhes: Bug do ano 2038 .

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

  1. ^ Experimente.
  2. ^http://www.php.net/date
  3. ^ 0 - 365 para anos bissextos
  4. ^ Conteúdo

Páginas relacionadas

Outros projetos

Para informações técnicas completas e atualizadas:

links externos