Comunidad Central
Registrarse
Advertisement
Comunidad Central
Introducción a Lua, para plantillas más rápidas y potentes

Hola a todos, hoy queremos presentamos una breve introducción al nuevo lenguaje de plantillas que se implementará próximamente en todas las wikias. Este lenguaje servirá para hacer más fácil la creación y modificación de las plantillas, por ejemplo las infoboxes, las tablas de navegación y muchas más.

¿Por qué os presentamos Lua?[]

Muchos de vosotros utilizáis las plantillas de manera habitual. La plataforma MediaWiki sobre la que se construye Wikia, utiliza una sintaxis especial del wikitexto, denominada Parser functions, que permite utilizar funciones lógicas para construir las plantillas. La introducción de las funciones parser en el wikitexto lo convierte en un lenguaje limitado. Si bien las funciones parser permiten hacer muchas cosas con las plantillas, las que son complejas tienen problemas de rendimiento y del tiempo de carga de la página, y en muchas ocasiones resultan difíciles de entender y de editar para los usuarios. Si no sabes muy bien que son las funciones parser, puedes ver por qué las plantillas pueden ser tan complicadas.

Por eso se ha añadido Lua a MediaWiki, incluyendo a Wikia, para que podáis usar un lenguaje de plantillas rápido, fácil y más potente. Para los editores de plantillas, Lua permitirá crear una plantilla compleja y hacer cosas que con el wikitexto eran o muy complicadas, o ralentizaban la carga de la página. Lua está diseñada para que sea relativamente fácil de aprender, y se ha utilizado con éxito en entornos de videojuegos, como World of Warcraft, en donde personas sin ninguna experiencia en programación han sido capaces de modificar su entorno mediante un poco de aprendizaje de Lua. Para los que no editan plantillas, también se seguirán beneficiando de un menor tiempo de carga de las páginas usando plantillas Lua. Desde que se convirtió de la infobox de personaje de Marvel Database a lenguaje Lua, se ha comprobado que las páginas se cargan de un 35 a un 50% más rápido.

¿Qué aspecto tienen las plantillas Lua?[]

MarvelCharacterTemplate

¿Te cuesta entender este código? ¡Prueba con Lua!

Las plantillas Lua se crean escribiendo el código Lua en el espacio de nombres Módulo:. Se pueden usar añadiendo la función parser {{#invoke:}} en una página o en una plantilla. Como ejemplo de una plantilla que simplemente muestra una bienvenida cuando se le pasa un nombre, puedes crear Módulo:Bienvenida con el siguiente código:

-- Módulo de bienvenida
local p = {}
 
function p.hola( frame )
    return '¡Hola, ' .. frame.args[1] .. '!'
end
 
return p

Para usar entonces la plantilla en una página (o dentro de una plantilla), hay que añadir {{#invoke:Bienvenida|hola|Wikia}}. Esto mostrará el texto "¡Hola, Wikia!".

¿Dónde puedo aprender más sobre Lua?[]

En Wikia Developers Wiki se ha empezado documentando una versión de la extensión Lua (llamada Scribunto), y se continuará expandiendo para mejorar esa documentación mientras se va implementando la funcionalidad. También puedes visitar el sitio web de Lua, y echar un vistazo a la Documentación de Lua, Módulos Lua, y Plantillas basadas en módulos Lua.

¿Qué vendrá después?[]

Estad atentos a nuevas actualizaciones mientras se siguen implementando las plantillas Lua en más wikias. Publicaremos más actualizaciones sobre nuevas funcionalidades y hasta que se implemente a nivel global, se darán algunas sesiones de aprendizaje en Wikia Developers Wiki para los que estéis interesados.

Esta entrada de blog fue publicada originalmente en Community Central por Grunny, ingeniero de software de Wikia.


Zeist-i18n
Zeist Antilles comenzó a contribuir en FANDOM en 2006 en la comunidad de Star Wars, y poco a poco se fue implicando en otros proyectos. En 2011 se unió al IVT. Le gusta mucho leer y ver cine fantástico y de ciencia ficción, coleccionar tréboles de 4 hojas y jugar al ajedrez estándar y otras variantes. Su tema de conversación favorito es la astronomía, pero por encima de todo, su principal satisfacción es servir de ayuda.

Advertisement