Ayuda: funciones del analizador

De Wikipedia, la enciclopedia libre.
Saltar a navegación Saltar a búsqueda
Abreviaturas
WP: PARSER
WP: Analizador
WP: Análisis
Ayuda: analizador
Ayuda: análisis
Gnome-help.svg - Mostrador de información

Esta página describe las funciones del analizador que se pueden ingresar en wikicode para procesar cadenas y números. Son especialmente útiles para crear plantillas . Las funciones del analizador también pueden usar variables de Mediawiki .

Algunos son proporcionados por la extensión MediaWiki ParserFunctions y tienen sintaxis:

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

Otras son funciones básicas de MediaWiki y generalmente tienen sintaxis:

 {{nombre de función: argumento}}

Los espacios alrededor de {{ , }} y | no son relevantes en la sintaxis, así que por ejemplo {{ #nomefunzione: argomento 1 | argomento 2 }} es equivalente a {{#nomefunzione:argomento 1|argomento 2}} .

Se pueden realizar funciones más complejas que estas mediante módulos .

expr

La función expr procesa operaciones matemáticas. Los operadores admitidos, en orden de precedencia, son:

Operador Operación Ejemplo
- Negación unaria {{#expr: - 7}} = -7
Exp Exponencial {{#expr: exp 3}} = 20.085536923188
en Logaritmo natural {{#expr: ln 100}} = 4.6051701859881
abdominales Valor absoluto {{#expr: abs -2}} = 2
trunc Redondeando hacia abajo {{#expr: trunc 1.5}} = 1
{{#expr: trunc -1.5}} = -1
suelo Redondeando hacia abajo {{#expr: piso 1.5}} = 1
{{#expr: floor -1.5}} = -2
Ahí está el Redondeando {{#expr: ceil 1.5}} = 2
{{#expr: ceil -1.5}} = -1
pecado , cos , bronceado Funciones trigonométricas (en radianes) {{#expr: sin 1}} = 0,8414709848079
asin , acos , atan Funciones trigonométricas inversas {{#expr: asin 0.5}} = 0.5235987755983
no NO lógico {{#expr: not 7}} = 0
^ Exponenciación {{#expr: 30 ^ 7}} = 21870000000
* Multiplicación {{#expr: 30 * 7}} = 210
/ o div División {{#expr: 30/7}} = 4.2857142857143
modificación Módulo, devuelve el resto de una división. {{#expr: 30 mod 7}} = 2
+ Adición {{#expr: 30 + 7}} = 37
- Sustracción {{#expr: 30 - 7}} = 23
ronda Redondea al número más cercano.
El segundo operando es el número de decimales;
si es negativo, redondea a 10, 100 ...
{{#expr: 1.2345 ronda 2}} = 1.23
{{#expr: 1.2378 ronda 2}} = 1.24
{{#expr: 5432 ronda -2}} = 5400
= Igualdad {{#expr: 30 = 7}} = 0
<> o ! = Desigualdad {{#expr: 30 <> 7}} = 1
< Menor {{#expr: 30 <7}} = 0
> Mayor que {{#expr: 30> 7}} = 1
<= Menor o igual {{#expr: 30 <= 7}} = 0
> = Mayor o igual {{#expr: 30> = 7}} = 1
y Y lógico {{#expr: 30 y 7}} = 1
o OR lógico {{#expr: 30 o 7}} = 1
() Soportes {{#expr: (30 + 7) * 7}} = 259

Los números deben ingresarse en notación computarizada, sin separadores de miles y con el punto como separador decimal, p. Ej. 12345.67 ; se devuelven de la misma forma a la salida. No se requieren espacios entre operadores.

Los operadores booleanos tratan 0 como falso y cualquier número distinto de cero como verdadero. En la salida, el verdadero se devuelve como 1.

Las constantes "e" (número de Euler) y "pi" (pi) están disponibles.

Ejemplo:

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

devoluciones:

 38

que es 100 ° F en ° C, redondeado al número entero más cercano.

Las páginas que contienen errores en las funciones expr (expresiones mal formadas, división por cero ...) se colocan en Categoría: Páginas con errores en las expresiones .

si

Abreviaturas
Ayuda: si

La función if es una construcción if-then-else. Sintaxis:

 {{#if: <condición> | <luego texto> | <de lo contrario, texto> }}

Si la condición consiste en una cadena vacía o un espacio, entonces se considera falsa y, de lo contrario, se devuelve texto . Si no es así, se devuelve el texto . de lo contrario, se puede omitir el texto : en este caso, el resultado estará vacío si la expresión es falsa.

Ejemplo:

 {{Plantilla | parámetro = algo}} {{Plantilla}} {{Plantilla | parámetro =}}
                                     | | |
                                     | | |
                                     | | |
{{#if: {{{parámetro |}}} | Se indica el parámetro. | El parámetro no está indicado o está vacío. }}

Tenga en cuenta que la función if no admite el signo "=" ni expresiones matemáticas. {{#if: 1 = 2|sì|no}} devolverá "yes", porque la cadena "1 = 2" no está vacía. La función if está pensada como una función if defined . Para comparar cadenas, use ifeq . Para comparar números, use ifexpr .

Para verificar que una condición u otra sea verdadera, puede escribir:

 {{#if: {{{A |}}} {{{B |}}} | A o B | ni a ni B}}

Para verificar que ambas condiciones son verdaderas, puede escribir:

 {{#if: {{#if: {{{A |}}} | {{{B |}}}}} | A y B | A vacío o B vacío}}

Para ver qué condiciones son verdaderas, puede escribir:

 {{#if: {{{A |}}}
| {{#if: {{{B |}}} | A y B | solo A}}
| {{#if: {{{B |}}} | sólo B | ni a ni B}}
}}

ifeq

La función ifeq compara dos cadenas y devuelve otra cadena que depende del resultado de la comparación. Sintaxis:

 {{#ifeq: <texto 1> | <texto 2> | <si son iguales, devuelve esto> | <de lo contrario, esto> }}

iferror

La función iferror toma una cadena como entrada y devuelve otra cadena de las dos posibles; la salida depende de la cadena de entrada, si contiene un objeto HTML con class="error" (que puede ser generado por otras funciones del analizador como #expr y #time o por plantilla) se devuelve el primero, de lo contrario el segundo.

 {{#iferror <cadena> | <si la cadena devuelve un error> | <si la cadena es correcta> }}

Se puede poner una o ambas cadenas salientes. Si se omite la cadena a escribir en caso de que la cadena de entrada sea exacta, se devuelve el valor de la cadena de entrada. Si la cadena que se va a escribir se omite en caso de que la cadena de entrada sea incorrecta, se devuelve una cadena vacía en la salida:

 {{#iferror: {{#expr: 1 + 2 }} | errore | corretta }}correcto
{{#iferror: {{#expr: 1 + X }} | errore | corretta }}error
{{#iferror: {{#expr: 1 + 2 }} | errore }}3
{{#iferror: {{#expr: 1 + X }} | errore }}error
{{#iferror: {{#expr: 1 + 2 }} }}3
{{#iferror: {{#expr: 1 + X }} }} 
{{#iferror: <strong class="error">a</strong> | errore | corretta }}error

ifexpr

La función ifexpr resuelve una expresión matemática y devuelve un texto basado en el resultado.

 {{#ifexpr: <expresión> | <luego texto> | <de lo contrario, texto> }}

Si la expresión coincide, entonces se devuelve el texto, de lo contrario se devuelve el texto. La sintaxis de las expresiones es la misma que en expr .

si existe

ifexist devuelve uno de dos resultados, en función de si existe o no una página determinada en it.wiki.

El primer parámetro es el título que se buscará, el segundo es el resultado que se devolverá si la página existe y el tercero es el resultado que se devolverá si la página no existe. Si el primer parámetro no es un título válido, la función devuelve el resultado negativo.

{{#ifexist:Biologia|La voce [[biologia]] esiste!|La voce [[biologia]] non esiste.}}
devuelve "¡La entrada de biología existe!" porque la biología existe.
{{#ifexist:Aiuto:Funzioni parser|Sì|No}}
devuelve "Sí".
{{#ifexist:m:Help:Calculation|Sì|No}}
devuelve "No", a pesar de la existencia dem: Ayuda: Cálculo , debido al prefijo interwiki.

NB : ifexist es una función cara

Existencia de archivos

ifexist también le permite probar la disponibilidad de un archivo, en este caso independientemente de si es local o en Commons , indicando el archivo con el espacio de nombres virtual Media

Por el contrario, con File , Immagine o Image probamos la existencia local de la página de descripción del archivo.

Como esto:

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

En lugar de:

{{#ifexist: File:Example.png | esiste una pagina locale | non esiste una pagina locale }}
devuelve "no hay una página local"

cambiar

Abreviaturas
Ayuda: cambiar

La función de switch compara una cadena con otras, devolviendo una cadena dada si encuentra una coincidencia. Sintaxis:

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

switch buscará a través de todos los valores dados hasta que encuentre una coincidencia. Cuando se encuentra una coincidencia, se devuelve el resultado asignado a ese valor (el texto después del signo igual). Si no se encuentra ninguna coincidencia, pero el último elemento no tiene un signo igual, se devolverá como el valor predeterminado.

También es posible asignar un resultado a varios valores, evitando la duplicación de texto. Por ejemplo:

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

Tenga en cuenta que el valor 1 y el valor 2 no contienen el símbolo igual. Si se encuentra una coincidencia, se devolverá el resultado al que se le asignó un valor de 3 (resultado 3 ).

Formateo

Distingue mayúsculas y minúsculas

sumario rápido:

  • Primera capitalización: {{ucfirst:}} - Funzioni parser
  • primera minúscula: {{lcfirst:}} - funzioni parser
  • TODAS LAS MAYÚSCULAS: {{uc:}} - FUNZIONI PARSER
  • todo en minúsculas: {{lc:}} - funzioni parser

lc

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

Con {{lc:AbCdEf}} obtienes abcdef.
Con {{lc:Ä Β Ç}} obtenemos ä β ç, dado ä β ç.

uc

Acrónimo en mayúsculas (mayúsculas): transforma un texto en mayúsculas.

Con {{uc:AbCdEf}} obtienes ABCDEF.
Con {{uc:ä β ß}} obtenemos Ä Β ß.

lcfirst

Acrónimo de minúscula primero (primera minúscula): transforma el primer carácter de un texto en minúscula: con {{lcfirst:Ab Cd}} obtienes ab Cd.

ucfirst

Siglas para mayúsculas primero (primera letra mayúscula): transforma el primer carácter de un texto en letras mayúsculas: con {{ucfirst:aB cD}} obtienes AB cD.

formatnum

Agregue separadores de separador decimal y de miles a un número puro.

Los separadores de mil se insertan solo en la parte entera (antes de la coma), no en la parte fraccionaria (después de la coma).

El número dado en la entrada debe ingresarse en notación de computadora, sin separadores de miles y con el punto como separador decimal, ej. 12345.67 , como los dados en entrada y devueltos en salida por #expr .

Con {{formatnum:1234.56}} obtenemos 1 234.56

Con {{formatnum:1234567.8901234}} obtenemos 1 234 567,8901234

La presencia de notas junto con el número no da problemas, se ignoran y se devuelven tal cual.

Los caracteres no numéricos, excluidos los separadores, también se ignoran y conservan. Sin embargo, esta práctica está obsoleta y hace que la página se coloque en la Categoría: Páginas con argumentos de número de formato no numérico .

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

Puede hacer esto de la otra manera agregando R como el segundo parámetro: con {{formatnum:1 234 567,89|R}} obtiene 1 234 567.89 (los espacios no son espacios normales sino espacios que rompen caracteres).

padleft y padright

Agrega caracteres de relleno a la izquierda, lo que hace que la cadena tenga una longitud fija. Sintaxis:

 {{padleft: string | longitud | relleno}}

Con {{padleft:ciao|10|+-}} obtienes +-+-+-ciao

padright tiene el mismo efecto pero llena el lado derecho. Ejemplo: {{padright:ciao|10|+-}} genera: ciao+-+-+-

padleft o padright se pueden usar para obtener los primeros N caracteres de una cadena de longitud ≥ N: con {{padleft:|3|Tizio}} obtienes Tiz

plural

Muestra una cadena diferente dependiendo de si el argumento es "1" o un número mayor.

 {{plural: N | singular | plural}}

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

El valor predeterminado con un parámetro vacío o no reconocido es "plural". "1" seguido de otras palabras y "-1" se reconocen como singulares.

tiempo

La función de time es una construcción para formatear la hora. Sintaxis:

 {{#time: format }}

o

 {{#hora: formato | tiempo }}

Si no se especifica un valor para la hora , se utiliza la fecha y la hora de la conversión de la página a HTML (en hora universal coordinada ). Tenga en cuenta que debido al mecanismo de almacenamiento en caché, este valor puede diferir considerablemente del momento en que se muestra la página. Para actualizar el valor es necesario guardar la página (sin haberla modificado, es decir haciendo un "editar nulo"), o mostrarla solicitando la limpieza de la caché ( &action=purge agregado a la url) o seleccionar la opción que deshabilita el almacenamiento en caché de las páginas en sus preferencias.

La función #timel es análoga a #time , pero usa la zona horaria local de it.wiki ( UTC + 1 con posible horario de verano ) en lugar de la hora universal coordinada.

Parámetro de formato

El parámetro de formato es una cadena que usa una sintaxis similar a la que se usa en las fechas 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 Descripción salida equivalente con Variables equivalentes
# tiempo # timel Hora UTC Hora local
Año
Y en 4 dígitos 2021 2021 {{AÑO CORRIENTE}} {{LOCALYEAR}}
y en 2 dígitos 21 21 - -
L 1 si salto, 0 en caso contrario 0 0 - -
Mes
F. Nombre completo agosto agosto {{CURRENTMONTHNAME}} {{LOCALMONTHNAME}}
METRO. Nombre corto aguja aguja {{CURRENTMONTHABBREV}} {{LOCALMONTHABBREV}}
metro Número de mes (01 - 12) 08 08 {{MES ACTUAL}} {{LOCALTMONTH}}
norte Número de mes (1 - 12) 8 8
t Número de días del mes 31 31
Día
D Día del mes
(01 - 31).
17 17 {{CURRENTDAY2}} {{LOCALDAY2}}
j Día del mes (1 - 31). 17 17 {{DÍA ACTUAL}} {{LOCALDAY}}
z Día del año (0 - 364 [3] ) 228 228
L Nombre completo martes martes {{CURRENTDAYNAME}} {{LOCALDAYNAME}}
D. Nombre corto mar mar
No. ISO 8601 día de la semana
(1 (lunes) - 7 (domingo))
2 2 {{SEMANA ACTUAL}} {{LOCALWEEK}}
w Día de la semana
(0 (domingo) - 6 (sábado))
2 2
Semanas
W Semana del año
(01 - 52)
33 33 {{SEMANA ACTUAL}} {{LOCALWEEK}}
Horas
H: si Hora: minutos (00:00 - 23:59) 00:24 02:24 {{TIEMPO ACTUAL}} {{HORA LOCAL}}
H. Formato de hora 24 horas (00-23) 00 02 {{HORA ACTUAL}} {{HORA LOCAL}}
GRAMO. Formato de 24 horas (0-23) 0 2
h Formato de hora de 12 horas (01 - 12) 12 02
gramo Formato de hora de 12 horas (1 - 12) 12 2
para am o PM soy soy
PARA Am o PM SOY SOY
los El minuto (00 - 59) 24 24
s El segundo (00 - 59) 19 19

Los caracteres no reconocidos no se modifican. Existen dos técnicas para evitar procesar caracteres insertados en cadenas de descripción:

  • incluir lo mismo entre comillas dobles (no se considerarán las comillas simples)
    • Correcto: {{ #time: "Attualmente è" F}} → Actualmente es agosto
    • Incorrecto: {{ #time: Attualmente è F}} → AM3131uMonday08UTC831UTC es agosto
    • {{ #time:G:i's"}} simples: {{ #time:G:i's"}} → 0: 24'19"
  • Utilice el carácter de escape "\".
    • {{ #time:\H}} → H
    • {{ #time:\"}} →"

Parámetro de tiempo

El formato del parámetro de tiempo es idéntico al utilizado por la función strtotime () de PHP. Admite fechas absolutas y relativas. Las fechas deben estar en inglés, es decir, "11 de diciembre" y no "11 de diciembre" y "+10 horas" y no "+10 horas". Esta función se puede utilizar para la gestión de "zonas horarias" o para la conversión de la hora UTC utilizada por defecto a la hora CET o CEST utilizada en Italia. Para obtener más información, consulte el manual tar de GNU .

Ejemplos de

  • {{#time:G:i's"|+1 hours}} → 1: 24'19" devuelve CET (hora estándar)
  • {{#time:G:i's"|+2 hours}} → 2: 24'19" devuelve la hora CEST (horario de verano)
  • {{#time:j FY|-14 days}} devuelve el 3 de agosto de 2021 (hace 14 días)
  • {{#time:H:i|+6 hours}} devuelve 06:24 (6 horas más UTC )
  • {{#time:H:i|8:15 +6 hours}} devuelve 14:15
  • {{#time:m/Y|-1 months}} devuelve 07/2021 (hace 1 mes)
  • {{#time:d/m|25 dicembre}} devuelve Error: hora no válida. (25 de diciembre)
  • {{#time:d/m|December 25}} devuelve 25/12 (25 de diciembre)

"-1" y "último" son equivalentes, al igual que "+1" y "siguiente".

Rango de validez

Icono de lupa mgx2.svg Mismo tema en detalle: Error del año 2038 .

El rango de fechas que esta función maneja correctamente es desde 1970-1-1 00:00:01 hasta 2038-1-19 03:14:07 (1 a 2 31 segundos desde principios de 1970).

Rutas

urlencode

Convierta texto a formato compatible con URL reemplazando espacios con "+" y otros caracteres de formato de URL con sus equivalentes: {{urlencode:hello world ?&=#/:}} Yields hello + world +% 3F% 26% 3D% 23 % 2F% 3A.

rel2abs

Convierte una ruta, ya sea una URL o el título de una subpágina de Wikipedia, de relativa a absoluta. Sintaxis:

 {{# rel2abs: ruta relativa | ruta base}}

El primer parámetro, como en las rutas de carpeta de Windows / Unix, puede contener una combinación de:

  • . (ruta actual)
  • .. (nivel superior)
  • /nome (nombre de la subpágina)

El segundo parámetro, si se omite, es el título de la página actual.

Con {{#rel2abs: ../cccc | aaaaa/bbb }} da como resultado aaaaa/cccc

titleparts

Extrae de una ruta, ya sea una URL o el título de una subpágina de Wikipedia, los componentes de diferentes niveles separados por "/". Sintaxis:

 {{#titleparts: ruta | número de piezas | parte inicial}}

El valor predeterminado es "todos" para el número de piezas y 1 para la pieza inicial. Los números negativos le permiten contar desde la parte inferior (derecha).

Con {{#titleparts: aaaa/bbb/cc/ddd/ee | 3 | 2 }} obtienes bbb/cc/ddd
Con {{#titleparts: https://wikipedia.org/yyy/zz | 3 | 1 }} obtienes Https://wikipedia.org (el // cuenta como dos niveles)

Admite un máximo de 25 niveles y 255 caracteres y no funciona con algunos caracteres. Se recomienda usarlo solo con rutas y no para otros "trucos".

etiqueta

La función de tag genera una etiqueta XML específica de wikicode, como <ref> o <gallery>, incluida la etiqueta de cierre. Sintaxis:

 {{#tag: <nombre de etiqueta> | <contenido> | <atributo1> = <valor1> | <attribute2> = <value2> ...}}

Ejemplo:

 {{#tag: ref | Contenido | nombre = Nombre}}

Es equivalente a <ref name="Nome">Contenuto</ref> y devuelve: [4]

La función es particularmente útil cuando una plantilla necesita generar una etiqueta que también contiene wikicode complejo, porque asegura que la etiqueta se procesa después de su contenido (de lo contrario, es posible que el contenido no funcione). También garantiza que las etiquetas presentes en el código no ejecutado (como la parte negada de un #if) no se procesen falsamente.

Otro

invocar
ver Ayuda: Formularios
propiedad
ver Ayuda: Wikidata
género
Normalmente se utiliza en plantillas de alertas de usuario. Dado un nombre de usuario, devuelve una cadena diferente según el género del usuario, si se especifica en sus preferencias. Sintaxis
{{género: nombre | hombre | femenino | extraño }}
Si no especifica un texto para "desconocido", el valor predeterminado es masculino. Si el nombre está vacío, use el usuario actual.

Funciones onerosas

Algunas funciones y variables son caras , es decir, su cálculo requiere un "esfuerzo" relativamente alto para el sistema. Suelen ser funciones y variables que solicitan información sobre otra página, como ifexist. También hay un límite en el número de estas funciones que se pueden llamar desde una página; si lo pasa, las llamadas dejan de funcionar y la página se coloca en Categoría: Páginas con demasiadas llamadas a las funciones del analizador .

Por lo tanto, no exagere el uso de estas funciones, especialmente en las plantillas que se incluyen muchas veces en la misma página. En general, las funciones correspondientes disponibles en Lua son igualmente caras, por lo que los módulos no resuelven el problema.

Nota

  1. ^ Pruébelo.
  2. ^http://www.php.net/date
  3. ^ 0 - 365 para años bisiestos
  4. ^ Contenido

Páginas relacionadas

Otros proyectos

Para obtener información técnica completa y actualizada:

enlaces externos