Una función parser o función analizadora es una forma de wikitexto que te permite hacer que las plantillas sean más robustas y adaptables. Cuando se escriben bien junto a parámetros de plantilla, una definición de función parser produce resultados diferentes en situaciones diferentes.
Por ejemplo, en lugar de simplemente repetir la misma declaración en cada página que use la plantilla {{Mi Gran Plantilla}}
, puedes usar una función parser para dejar un resultado si la página está en Categoría:Archivo, y otro completamente diferente si está en Categoría:Ayuda.
Las formas en que puedes usar las funciones parser son demasiado variadas para que las compartamos aquí. Pero esperamos que podamos ayudarte a comenzar a explorarlos. Una lista con todas las funciones parser disponibles en un wiki puede verse en Especial:Versión.
Descripción y conceptos[]
Explicación[]
Analizar algo es simplemente examinar una declaración en busca de sus componentes lógicos y luego tomar medidas al respecto.
Por ejemplo:
- Si el nombre de este artículo es "Ayuda:FandomDesktop", entonces añade "Ahora estás en la página de ayuda sobre FandomDesktop."
Estos son los conceptos básicos de las funciones parser.
Escribir funciones parser[]
- Nota: Esta página usa el editor de código para escribir las funciones parser. Técnicamente, puedes editarlos usando el editor visual, pero la interfaz es muy limitada.
Las funciones parser se escriben agregando llaves ({{
), parecido a las plantillas. Sin embargo, la mayoría de ellas usualmente requieren que agregues un signo de almoadhilla (#
), para diferenciarlas fácilmente.
Ahora, volviendo al ejemplo anterior, el código para esto es:
{{#ifeq: {{FULLPAGENAME}} | Ayuda:FandomDesktop
| Ahora estás en la página de ayuda sobre FandomDesktop.
}}
Puede parecer complicado, por lo que a continuación se incluye una guía paso a paso:
- La función parser
#ifeq:
significa "si es igual" o "si iguala". Eso puede no tener ningún sentido, pero continúa leyendo. - La primera parte es una palabra mágica, que genera el "nombre completo de la página" (es decir, el espacio de nombres junto con el nombre de la página).
- La segunda parte ingresa "Ayuda:FandomDesktop" a la función parser. Ten en cuenta que las "entradas" de las funciones parser están separadas por la barra
|
, como los parámetros de plantilla. - La tercera parte muestra "Ahora estás en la página de ayuda sobre FandomDesktop.", si el nombre completo de la página es igual a Ayuda:FandomDesktop.
Así es como se lee la declaración:
- Si el nombre completo de la página es igual a Ayuda:FandomDesktop, muestra "Ahora estás en la página de ayuda sobre FandomDesktop".
¡Aquí vamos! Ahora, has entendido cómo funciona una función de analizador.
Ejemplos adicionales[]
Plantilla que comprueba si un personaje es adulto[]
Esta plantilla utiliza la función parser #ifexpr
. También detalla parámetros de plantilla.
Entonces, simplemente pon esto en el código:
{{#ifexpr: {{{edad|}}} > 18
| El personaje es adulto.
| El personaje '''no''' es adulto.
}}
En términos básicos, el código anterior significa "Si edad=
es mayor que 18, el personaje es un adulto. De lo contrario, no".
Vamos a desglosarlo paso a paso:
{{#ifexpr: {{{edad|}}} > 18
- Esto significa: Si el parámetro "edad" es mayor que 18.
| El personaje es adulto.
- Cuando la declaración anterior sea verdadera (o sí), coloca "El personaje es adulto" en la página.
| El personaje '''no''' es adulto.
- De lo contrario, coloca "El personaje no es adulto." en la página.
}}
- Finaliza la función parser.
Repitiendo, pero:
- Si
| edad =
es mayor que 18, añade "El personaje es adulto" a la página. De lo contrario, añade "El personaje '''no''' es adulto".
Versión mejorada de la plantilla de cuadro[]
Si recuerda la plantilla de cuadro en Ayuda:Parámetros de plantillas, básicamente crea un cuadro simple para mostrarse en una página. Sin embargo, con el uso de funciones parser, se puede mejorar enormemente.
Edita Plantilla:Cuadro para que tenga el siguiente código:
<div style="background-color: {{{bgcolor|#ddd2}}}; border: 1px solid #5556; padding: 2em; text-align: center; width: 10em;">
{{#if: {{{título|}}}
| '''{{{título}}}'''
}}
{{{texto}}}
</div>
Esto ahora introduce la función parser #if:
, que se utiliza para comprobar si existe un parámetro.[nota 1]
Entonces, escribiendo:
{{Box
| título = Mi título
| texto = Texto explicativo aquí
}}
Resultará en:
Mi título Texto explicativo aquí
Por otro lado, si se escribe esto:
{{Box
| texto = Texto explicativo aquí
}}
Esto aparecerá:
Texto explicativo aquí
¿Ves que el título en negrita se ha ido? Entonces, si no se especifica | título =
, no mostrará nada en el título.
Digamos que eliminamos la función parser:
<div style="background-color: {{{bgcolor|#ddd2}}}; border: 1px solid #5556; padding: 2em; text-align: center; width: 10em;">
'''{{{título}}}'''
{{{texto}}}
</div>
Y no añadimos un parámetro | título =
. Esto aparecerá:
' Texto explicativo aquí
Parece roto, ¿verdad?[nota 2] ¡Esta es la razón por la que ParserFunctions es genial! Puede ayudarnos a hacer una lógica como esta.
En resumen:
- Si se indica el parámetro {{{título|}}}, muestra el título en negrita.
Plantilla dependiente del espacio de nombres[]
Ahora, vamos a crear una plantilla básica, que cambia su comportamiento según el espacio de nombres.
Crea Plantilla:Comprobador de espacio de nombres
con el siguiente código:
{{#switch: {{{espaciodemo|{{{1| {{NAMESPACE}} }}}}}}
| Plantilla = Estás en una página de plantilla.
| Archivo = Estás en una página de imagen, video o archivo.
| Categoría = Estás en una página de categoría.
| #default = Estás en una página de artículo.
}}<noinclude>
{{Documentación}}
</noinclude>
Esto introduce la función parser #switch:
, que cambia dependiendo de los valores enviados.
Además de eso, introduce una documentación de plantilla, que se puede usar para decirle a la gente cómo usar la plantilla.
Después de guardar la página, haz clic en el enlace Plantilla:Comprobador de espacio de nombres/doc
. Puede variar, así que si está disponible, intenta hacer clic en "crear" o "crear esta documentación".
Luego, reemplaza todo el contenido con:
; Descripción:
: Esta plantilla muestra diferentes salidas según el espacio de nombres.
:
; Sintaxis:
: {{t|Comprobador de espacio de nombres|espacio de nombres opcional}}
:
; Muestra de salida:
: {{t|Comprobador de espacio de nombres}} → {{Comprobador de espacio de nombres}}
:
: {{t|Comprobador de espacio de nombres|Archivo}} → {{Comprobador de espacio de nombres|Archivo}}
Guarda la página y vuelve a la página principal de la plantilla. Debería verse algo similar a:
Estás en una página de plantilla.
Nota: Este recuadro no aparecerá en el artículo.
Aún no se han escrito las instrucciones sobre esta plantilla.
Añadir una explicación sobre el uso de esta plantilla
¡Felicidades! ¡Has creado una plantilla que usa funciones parser y tiene documentación!
Funciones parser comunes[]
Ahora que has aprendido lo que hace una función parser y has visto ejemplos de ella, continuaremos con la parte de referencia.
Integradas[]
El propio software Ayuda:MediaWiki incluye múltiples funciones parser por defecto. Una lista completa de estas está disponible en Help:Magic words en MediaWiki.org. En esta página aparecen las más útiles.
{{fullurl:}}
- Hace aparecer la URL completa de una página.
{{fullurl:Ayuda:Contenidos}}
→ https://comunidad.fandom.com/wiki/Ayuda:Contenidos{{#language:}}
- Convierte un código de idioma al nombre del idioma.
{{#language:es}}
→ español{{lc:}}
- Hace que el contenido esté en minúscula (lo opuesto de
{{uc:}}
). {{lc:TEXTO}}
→ texto{{ns:}}
- Toma un número de espacio de nombre e indica cual es el espacio de nombre.
{{ns:4}}
→ Comunidad Central{{plural:}}
- Si una expresión dada es igual a uno, aparece el valor singular definido. Si una expresión es igual a dos, aparece el valor plural definido.
{{plural:1|es|son}}
→ es{{plural:2|es|son}}
→ son
Extensión ParserFunctions[]
- Esta extensión está activada por defecto en Fandom.
La extensión ParserFunctions es una extensión de MediaWiki popular que añade múltiples funciones parser útiles además de las que aparecen en la lista anterior. Esta extensión se encuentra activada por defecto en todas los wikis de Fandom, así que no necesitas pedirla.
Las funciones parser pueden realizar operaciones matemáticas, evaluar declaraciones if/else (si/entonces) e incluso manipular el tiempo mismo. (Bueno, la expresión del tiempo, de todos modos.)
¡Algunos de ellos incluso se usan en los ejemplos de las secciones anteriores!
Aquí hay un subconjunto de ellos; para ver una lista de estas funciones y documentación completa sobre cómo usarlas, por favor visita la página de ayuda oficial de la extensión.
#if:
{{#if: valor | si el valor no está vacío, muestra esto | si está vacío o tiene solo espacios en blanco, muestra esto otro }}
- Permite comprobar si hay un valor presente, y muestra algo si está presente. Si no lo está o si solo tiene espacios en blanco, muestra otra cosa diferente.
#ifeq:
{{#ifeq: a | b | si a es igual a b, muestra esto | si no es igual, muestra esto otro }}
- Permite comprobar si un valor es igual a otro, y muestra algo si es igual. Si no es igual, muestra otra cosa diferente.
#ifexist:
{{#ifexist: página | si existe la página, muestra esto | si no existe, muestra esto otro }}
- Permite comprobar si existe una página, y muestra algo si existe. Si no existe, muestra otra cosa diferente.
Otras extensiones[]
Varias extensiones que son populares en Fandom añaden sus propias funciones parser. Estas son algunas de las más comunes.
- Arrays - añade
{{#arraydefine}}
,{{#arrayprint}}
,{{#arraysearcharray}}
y otras más. - Variables - añade
{{#var}}
,{{#vardefine}}
,{{#vardefineecho}}
y otras más.
Para obtener más información sobre estos, consulta la página de esa extensión en MediaWiki.org.
¿Qué funciones parser están disponibles aquí?[]
Debido a que diferentes wikis pueden tener diferentes funciones parser, puede ser útil averiguar con precisión qué hay en un wiki en particular. Busca en la página Especial:Versión de tu wiki para ver la lista completa.
Notas[]
- ↑ Técnicamente, la función parser
#if:
comprueba si el primer "parámetro" no está "vacío". Una cadena que contiene solo espacios en blanco se considera vacía. Esta sección está escrita que la función principal no existe, en aras de la simplicidad. - ↑ Nota: la "plantilla" está rota intencionalmente. Eliminar la función parser simplemente agregará un
'
aleatorio antes del texto del cuerpo
Véase también[]
- Información general sobre las funciones parser en MediaWiki.
- Información sobre las palabras mágicas, una funcionalidad de MediaWiki similar.
- Información sobre todas las extensiones en Fandom y qué hacen.