Axuda: funcións de analizador

Da Wikipedia, a enciclopedia libre.
Ir á navegación Ir á busca
Abreviaturas
WP: PARSER
WP: analizador
WP: Análise
Axuda: analizador
Axuda: Análise
Gnome-help.svg - Mesa de información

Esta páxina describe as funcións do analizador que se poden introducir no wikicode para procesar cadeas e números. Son especialmente útiles para crear modelos . As funcións de analizador tamén poden usar variables Mediawiki .

Algúns son proporcionados pola extensión MediaWiki ParserFunctions e teñen sintaxe:

 {{# nomefunción: argumento 1 | argumento 2 | argumento 3 ...}}

Outras son funcións básicas de MediaWiki e xeralmente teñen sintaxe:

 {{nome da función: argumento}}

Os espazos arredor de {{ , }} e | non son relevantes na sintaxe, polo que por exemplo {{ #nomefunzione: argomento 1 | argomento 2 }} equivale a {{#nomefunzione:argomento 1|argomento 2}} .

Funcións máis complexas que estas pódense realizar a través de módulos .

expr

A función expr procesa operacións matemáticas. Os operadores soportados, por orde de precedencia, son:

Operador Operación Exemplo
- Negación unaria {{#expr: - 7}} = -7
exp Exponencial {{#expr: exp 3}} = 20.085536923188
ln Logaritmo natural {{#expr: ln 100}} = 4.6051701859881
abs Valor absoluto {{#expr: abs -2}} = 2
trunc Redondeando cara abaixo {{#expr: trunc 1.5}} = 1
{{#expr: trunc -1.5}} = -1
chan Redondeando cara abaixo {{#expr: andar 1.5}} = 1
{{#expr: andar -1.5}} = -2
Alí está o Redondeo cara arriba {{#expr: ceil 1.5}} = 2
{{#expr: ceil -1.5}} = -1
sin , cos , tan Funcións trigonométricas (en radiáns) {{#expr: sin 1}} = 0,8414709848079
asin , acos , atan Funcións trigonométricas inversas {{#expr: asin 0.5}} = 0.5235987755983
non Lóxico NON {{#expr: not 7}} = 0
^ Exponenciación {{#expr: 30 ^ 7}} = 21870000000
* Multiplicación {{#expr: 30 * 7}} = 210
/ ou div División {{#expr: 30/7}} = 4.2857142857143
mod Módulo, devolve o resto dunha división {{#expr: 30 mod 7}} = 2
+ Adición {{#expr: 30 + 7}} = 37
- Resta {{#expr: 30 - 7}} = 23
redondo Redondea ata o número máis próximo.
O segundo operando é o número de decimais;
se é negativo, redondea a 10, 100 ...
{{#expr: 1.2345 rolda 2}} = 1.23
{{#expr: 1.2378 rolda 2}} = 1.24
{{#expr: 5432 round -2}} = 5400
= Igualdade {{#expr: 30 = 7}} = 0
<> ou ! = Desigualdade {{#expr: 30 <> 7}} = 1
< Menor {{#expr: 30 <7}} = 0
> Maior {{#expr: 30> 7}} = 1
<= Menos ou iguais {{#expr: 30 <= 7}} = 0
> = Maior ou igual {{#expr: 30> = 7}} = 1
e E lóxico {{#expr: 30 e 7}} = 1
ou OR lóxico {{#expr: 30 ou 7}} = 1
() Soportes {{#expr: (30 + 7) * 7}} = 259

Os números deben introducirse en notación informática, sen separadores de miles e co punto como separador decimal, por exemplo. 12345.67 ; devólvense do mesmo xeito á saída. Non se requiren espazos entre operadores.

Os operadores booleanos tratan 0 como falso e calquera número diferente de cero como verdadeiro. Na saída devólvese o verdadeiro como 1.

As constantes "e" (número de Euler) e "pi" (pi) están dispoñibles.

Exemplo:

 {{#expr: (100 - 32) / 9 * 5 rolda 0}}

devolve:

 38

que é 100 ° F en ° C, redondeado ao número enteiro máis próximo.

As páxinas que conteñen erros nas funcións expr (expresións mal formadas, división por cero ...) colócanse en Categoría: Páxinas con erros nas expresións .

se

Abreviaturas
Axuda: se

A función if é unha construción if-then-else. Sintaxe:

 {{#if: <condición> | <despois envía un texto> | <doutro xeito de texto> }}

Se a condición consiste nunha cadea baleira ou nun espazo, entón considérase falsa e, en caso contrario, devólvese o texto . Se non, devólvese o texto . se non, pódese omitir texto : neste caso o resultado quedará baleiro se a expresión é falsa.

Exemplo:

 {{Modelo | parámetro = algo}} {{Modelo}} {{Modelo | parámetro =}}
                                     | | |
                                     | | |
                                     | | |
{{#if: {{{parámetro |}}} | O parámetro está indicado. | O parámetro non está indicado ou está baleiro. }}

Teña en conta que a función if non admite o signo "=" nin as expresións matemáticas. {{#if: 1 = 2|sì|no}} devolverá "si", porque a cadea "1 = 2" non está baleira. A función if preténdese como unha función if defined . Para comparar cadeas, usa ifeq . Para comparar números, use ifexpr .

Para verificar que unha ou outras condicións son certas, pode escribir:

 {{#if: {{{A |}}} {{{B |}}} | A ou B | nin A nin B}}

Para verificar que ambas condicións son certas, pode escribir:

 {{#if: {{#if: {{{A |}}} | {{{B |}}}}} | A e B | Un baleiro ou B baleiro}}

Para ver que condicións son certas podes escribir:

 {{#if: {{{A |}}}
| {{#if: {{{B |}}} | A e B | só A}}
| {{#if: {{{B |}}} | só B | nin A nin B}}
}}

ifeq

A función ifeq compara dúas cadeas e devolve outra cadea que depende do resultado da comparación. Sintaxe:

 {{#ifeq: <texto 1> | <texto 2> | <se son iguais, devolve isto> | <senón isto> }}

iferror

A función iferror toma unha cadea como entrada e devolve outra cadea das dúas posibles; a saída depende da cadea de entrada, se contén un obxecto HTML con class="error" (que pode ser xerado por outras funcións de analizador como #expr e #time ou por modelo) devólvese o primeiro, se non o segundo.

 {{#iferror <string> | <se a cadea devolve un erro> | <se a cadea é correcta> }}

Pódense poñer unha ou ambas as cadeas de saída. Se se omite a cadea a escribir no caso de que a cadea de entrada sexa exacta, devólvese o valor da cadea de entrada. Se se omite a cadea a escribir no caso de que a cadea de entrada sexa incorrecta, devólvese unha cadea baleira na saída:

 {{#iferror: {{#expr: 1 + 2 }} | errore | corretta }}correcto
{{#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 función ifexpr resolve unha expresión matemática e devolve un texto en función do resultado.

 {{#ifexpr: <expresión> | <despois envía un texto> | <doutro xeito de texto> }}

A expresión corresponde, entón o texto é devolto, se non, o texto é de retorno. A sintaxe das expresións é a mesma que en expr .

se existe

ifexist devolve un dos dous resultados, en función de se existe ou non unha páxina dada nel.wiki.

O primeiro parámetro é o título que se busca, o segundo é o resultado que se devolve se a páxina existe e o terceiro é o resultado que se devolve se a páxina non existe. Se o primeiro parámetro non é un título válido, a función devolve o resultado negativo.

{{#ifexist:Biologia|La voce [[biologia]] esiste!|La voce [[biologia]] non esiste.}}
devolve "A entrada de bioloxía existe!" porque a bioloxía existe.
{{#ifexist:Aiuto:Funzioni parser|Sì|No}}
devolve "Si".
{{#ifexist:m:Help:Calculation|Sì|No}}
devolve "Non", a pesar da existencia dem: Axuda: cálculo , debido ao prefixo interwiki.

NB : ifexist é unha función cara

Existencia de ficheiros

ifexist tamén permite probar a dispoñibilidade dun ficheiro, neste caso independentemente de que sexa local ou en Commons , indicando o ficheiro co espazo de nome virtual Media

Pola contra, con File , Immagine ou Image comprobamos a existencia local da páxina de descrición do ficheiro.

Como isto:

{{#ifexist: Media: Example.png | il file esiste su Commons o in locale | il file non esiste né su Commons né in locale }}
devolve "o ficheiro existe en commons ou localmente"

No seu lugar:

{{#ifexist: File:Example.png | esiste una pagina locale | non esiste una pagina locale }}
devolve "non hai páxina local"

cambiar

Abreviaturas
Axuda: cambiar

A función de switch compara unha cadea con outras, devolvendo unha cadea dada se atopa unha coincidencia. Sintaxe:

 {{#interruptor: <valor de comparación>
 | <valor 1 > = <resultado 1 >
 | <valor 2 > = <resultado 2 >
 | ...
 | <valor n > = <resultado n > 
 | # default = <resultado predeterminado>
 }}

switch buscará entre todos os valores dados ata atopar unha coincidencia. Cando se atopa unha coincidencia, devólvese o resultado asignado a ese valor (o texto despois do signo igual). Se non se atopa ningunha coincidencia, pero o último elemento non ten un signo igual, devolverase como valor predeterminado.

Tamén é posible asignar un resultado a varios valores, evitando duplicar texto. Por exemplo:

 {{#interruptor: <valor de comparación>
 | <valor 1 >
 | <valor 2 >
 | <valor 3 > = <resultado 3 >
 | ...
 | <valor n > = <resultado n > 
 | # default = <resultado predeterminado>
 }}

Teña en conta que o valor 1 e o valor 2 non conteñen o símbolo igual. Se se atopase unha coincidencia, devolveríase o resultado asignado a un valor de 3 (resultado 3 ).

Formatado

Distinción entre maiúsculas e minúsculas

resumo rápido:

  • Primeira maiúscula: {{ucfirst:}} - Funzioni parser
  • primeira minúscula: {{lcfirst:}} - funzioni parser
  • TODAS MAIÚSCULAS: {{uc:}} - FUNZIONI PARSER
  • todas en minúsculas: {{lc:}} - funzioni parser

lc

Minúsculas acrónimo (en minúsculas): transforma texto en caracteres minúsculos.

Con {{lc:AbCdEf}} obtense abcdef.
Con {{lc:Ä Β Ç}} obtemos ä β ç, dada ä β ç.

uc

Acrónimo en maiúsculas (todo en maiúsculas): transforma un texto en caracteres maiúsculos.

Con {{uc:AbCdEf}} obtés ABCDEF.
Con {{uc:ä β ß}} obtemos Ä Β ß.

primeiro

Acrónimo de minúscula primeiro (primeiro minúscula): transforma o primeiro carácter dun texto en minúscula: con {{lcfirst:Ab Cd}} obtense ab Cd.

ucfirst

Acrónimo de maiúsculas primeiro (primeira maiúscula): transforma o primeiro carácter dun texto en maiúsculas: con {{ucfirst:aB cD}} obtés AB cD.

formatnum

Engade separadores de punto decimal e miles a un número puro.

Miles de separadores insírense só na parte enteira (antes da coma), non na parte fraccionada (despois da coma).

O número indicado na entrada debe introducirse na notación por ordenador, sen separadores de miles e co punto como separador decimal, por exemplo. 12345.67 , como os dados na entrada e devoltos na saída por #expr .

Con {{formatnum:1234.56}} obtemos 1 234,56

Con {{formatnum:1234567.8901234}} obtemos 1 234 567.8901234

A presenza de notas xunto co número non dá problemas, ignóranse e devólvense tal e como están.

Os caracteres non numéricos, excluíndo os separadores, tamén se ignoran e gardan. Non obstante, esta práctica está obsoleta e fai que a páxina se coloque na categoría: páxinas con argumentos de formato non numérico .

Con {{formatnum:''I numeri sono 1234 e 5678<ref>Prova.</ref>''}} obtén Os números son 1 234 e 5 678 [1]

Podes facelo doutro xeito engadindo R como segundo parámetro: con {{formatnum:1 234 567,89|R}} obtés 1 234 567,89 (os espazos non son espazos normais senón que rompen caracteres).

padleft e padright

Engade caracteres de recheo á esquerda, facendo que a corda teña unha lonxitude fixa. Sintaxe:

 {{padleft: string | lonxitude | enchendo}}

Con {{padleft:ciao|10|+-}} obtés +-+-+-ciao

padright ten o mesmo efecto pero enche o lado dereito. Exemplo: {{padright:ciao|10|+-}} xera: ciao+-+-+-

padleft ou padright pódense usar para obter os primeiros N caracteres dunha cadea de lonxitude ≥ N: con {{padleft:|3|Tizio}} obtés Tiz

plural

Mostra unha cadea diferente segundo o argumento sexa "1" ou un número maior.

 {{plural: N | singular | plural}}

Con {{plural:3|casa|case}} obtemos case

O valor predeterminado cun parámetro baleiro ou non recoñecido é "plural". "1" seguido doutras palabras e "-1" recoñécense como singulares.

tempo

A función time é unha construción para formatar o tempo. Sintaxe:

 {{#time: format }}

ou

 {{# hora: formato | tempo }}

Se non se especifica un valor para o tempo, úsase a data e a hora da conversión da páxina en HTML (en Tempo Universal Coordinado ). Ten en conta que debido ao mecanismo de almacenamento en caché este valor pode diferir considerablemente do momento no que se amosa a páxina. Para actualizar o valor é necesario gardar a páxina (sen modificala, é dicir, facendo unha "edición nula"), ou amosala solicitando a limpeza da caché ( &action=purge engadida á url) ou seleccione a opción que desactiva a caché das páxinas nas túas preferencias.

A función #timel é análoga a #time , pero usa a zona horaria local de it.wiki ( UTC + 1 con posible horario de verán ) no canto de Tempo Universal Coordinado.

Parámetro de formato

O parámetro de formato é unha cadea que usa unha sintaxe similar á usada nas datas en PHP [2] .

formato rápido

  • {{#timel:j FY}} - 17 agosto 2021
  • {{#timel:Ymd}} - 2021-08-17
  • {{#timel:lj FYG:s}} - 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 Descrición saída equivalente con Variables equivalentes
# tempo # timel Hora UTC Hora local
Ano
Si en 4 díxitos 2021 2021 {{CURRENTYEAR}} {{LOCALYEAR}}
y en 2 díxitos 21 21 - -
L 1 se salto, 0 doutro xeito 0 0 - -
Mes
F. Nome completo Agosto Agosto {{CURRENTMONTHNAME}} {{LOCALMONTHNAME}}
M. Nome curto agulla agulla {{CURRENTMONTHABBREV}} {{LOCALMONTHABBREV}}
m Número do mes (01-12) 08 08 {{CURRENTMONTH}} {{LOCALTMONTH}}
n Número do mes (1-12) 8 8
t Número de días do mes 31 31
Día
d Día do mes
(01-31).
17 17 {{CURRENTDAY2}} {{LOCALDAY2}}
j Día do mes (1 - 31). 17 17 {{CURRENTDAY}} {{LOCALDAY}}
z Día do ano (0 - 364 [3] ) 228 228
L Nome completo Martes Martes {{CURRENTDAYNAME}} {{LOCALDAYNAME}}
D. Nome curto mar mar
Non ISO 8601 día da semana
(1 (luns) - 7 (domingo))
2 2 {{CURRENTWEEK}} {{LOCALWEEK}}
w Día da semana
(0 (domingo) - 6 (sábado))
2 2
Semanas
W Semana do ano
(01-52)
33 33 {{CURRENTWEEK}} {{LOCALWEEK}}
Horas
H: si Hora: minutos (00:00 - 23:59) 00:24 02:24 {{CURRENTTIME}} {{LOCALTIME}}
H. Formato de hora 24 horas (00-23) 00 02 {{CURRENTHOUR}} {{LOCALHOUR}}
G. Formato de 24 horas (0 - 23) 0 2
h Formato de hora de 12 horas (01-12) 12 02
g Formato de hora de 12 horas (1-12) 12 2
a am ou pm son son
A AM ou PM AM AM
o O minuto (00 - 59) 24 24
s O segundo (00 - 59) 19 19

Os caracteres non recoñecidos quedan inalterados. Hai dúas técnicas para evitar procesar caracteres inseridos nas cadeas de descrición:

  • inclúe o mesmo entre comiñas dobres (non se terán en conta as comiñas simples)
    • Correcto: {{ #time: "Attualmente è" F}} → Actualmente é agosto
    • Incorrecto: {{ #time: Attualmente è F}} → AM3131uMonday08UTC831UTC é agosto
    • Citas individuais: {{ #time:G:i's"}} → 0: 24'19"
  • Use o carácter de escape "\".
    • {{ #time:\H}} → H
    • {{ #time:\"}} →"

Parámetro de tempo

O formato do parámetro tempo é idéntico ao usado pola función PHP strtotime (). Admite datas absolutas e relativas. As datas deben estar en inglés, é dicir, "11 de decembro" e non "11 de decembro" e "+10 horas" e non "+10 horas". Esta función pódese usar para a xestión de "fusos horarios" ou para a conversión desde a hora UTC usada por defecto ata a hora CET ou CEST usada en Italia. Para obter máis información, consulte o manual GNU tar .

Exemplos

  • {{#time:G:i's"|+1 hours}} → 1: 24'19" devolve a CET (hora estándar)
  • {{#time:G:i's"|+2 hours}} → 2: 24'19" devolve a hora CEST (hora de verán)
  • {{#time:j FY|-14 days}} regresa o 3 de agosto de 2021 (hai 14 días)
  • {{#time:H:i|+6 hours}} devolve as 06:24 (6 horas máis UTC )
  • {{#time:H:i|8:15 +6 hours}} devolve as 14:15
  • {{#time:m/Y|-1 months}} devolve o 07/2021 (hai 1 mes)
  • {{#time:d/m|25 dicembre}} devolve un erro: hora non válida. (25 de decembro)
  • {{#time:d/m|December 25}} devolve o 25/12 (25 de decembro)

"-1" e "último" son equivalentes, do mesmo xeito que "+1" e "seguinte".

Rango de validez

Icona de lupa mgx2.svg Mesmo tema en detalle: Erro do ano 2038 .

O intervalo de datas que se manexa correctamente por esta función é de 1970-1-1 00:00:01 a 2038-1-19 03:14:07 (1 a 2 31 segundos desde principios de 1970).

Rutas

código de url

Converter texto en URL- formato compatible, substituíndo os espazos con "+" e outros caracteres formato de URL cos seus equivalentes: {{urlencode:hello world ?&=#/:}} Ingresos Ola + mundo +% 3F% 26 %% 3D 23 % 2F% 3A.

rel2abs

Converte un camiño, xa sexa un URL ou o título dunha subpáxina da Wikipedia, de relativo a absoluto. Sintaxe:

 {{# rel2abs: ruta relativa | camiño base}}

O primeiro parámetro, como nos camiños de cartafoles de Windows / Unix, pode conter unha combinación de:

  • . (ruta actual)
  • .. (nivel superior)
  • /nome (nome da subpáxina)

O segundo parámetro, se se omite, é o título da páxina actual.

Con {{#rel2abs: ../cccc | aaaaa/bbb }} resulta en aaaaa/cccc

partes do título

Extractos dunha ruta, xa sexa unha URL ou o título dunha subpáxina da Wikipedia, os compoñentes de diferentes niveis separados por "/". Sintaxe:

 {{#titleparts: camiño | número de partes | parte inicial}}

O valor predeterminado é "todas" para o número de pezas e 1 para a parte inicial. Os números negativos permiten contar dende a parte inferior (dereita).

Con {{#titleparts: aaaa/bbb/cc/ddd/ee | 3 | 2 }} obtés bbb/cc/ddd
Con {{#titleparts: https://wikipedia.org/yyy/zz | 3 | 1 }} obtés Https://wikipedia.org (o // conta como dous niveis)

Soporta un máximo de 25 niveis e 255 caracteres e non funciona con algúns personaxes. Recoméndase usalo só con camiños e non para outros "trucos".

etiqueta

A función tag xera unha etiqueta XML específica de wikicode, como <ref> ou <gallery>, incluída a etiqueta de peche. Sintaxe:

 {{#tag: <nome da etiqueta> | <contido> | <atributo1> = <valor1> | <attribute2> = <valor2> ...}}

Exemplo:

 {{#tag: ref | Contido | nome = Nome}}

É equivalente a <ref name="Nome">Contenuto</ref> e devolve: [4]

A función é especialmente útil cando un modelo precisa xerar unha etiqueta que tamén conteña wikicode complexo, porque garante que a etiqueta se procesa despois do seu contido (se non, o contido pode non funcionar). Tamén garante que as etiquetas presentes no código non executado (como a parte negada dun #if) non se procesen falsamente.

Outra

invocar
ver Axuda: formularios
propiedade
ver Axuda: Wikidata
xénero
Normalmente úsase nos modelos de alerta do usuario. Dado un nome de usuario, devolve unha cadea diferente segundo o sexo do usuario, se se especifica nas súas preferencias. Sintaxe
{{xénero: nome | home | femia | estraño}}
Se non especifica un texto para "descoñecido", o predeterminado é masculino. Se o nome está baleiro, use o usuario actual.

Funcións gravosas

Algunhas funcións e variables son caras , é dicir, o seu cálculo require un "esforzo" relativamente alto para o sistema. Normalmente son funcións e variables que solicitan información sobre outra páxina, como ifexist. Tamén hai un límite ao número destas funcións que se poden chamar desde unha páxina; se o aprobas, as chamadas deixan de funcionar e a páxina colócase en Categoría: Páxinas con demasiadas chamadas a funcións de analizador .

Polo tanto, non esaxere o uso destas funcións, especialmente nos modelos que se inclúen moitas veces na mesma páxina. En xeral, as funcións correspondentes dispoñibles en Lua son igualmente caras, polo que os módulos non resolven o problema.

Nota

  1. ^ Próbao.
  2. ^http://www.php.net/date
  3. ^ 0 - 365 para anos bisestos
  4. ^ Contido

Páxinas relacionadas

Outros proxectos

Para obter información técnica completa e actualizada:

Ligazóns externas