Hello Wikians! Since it's my first post, let me introduce myself: I'm Adam, and I work at Wikia on the Community Engineering team. Together with Grunny, I'm responsible for rolling-out Lua-based templates. I'd like to share some information on our first shared module—the InfoboxBuilder.
The idea for InfoboxBuilder came from researching a number of wikias and their way of creating complex infoboxes. Not only is our goal to unify these templates and speed up the page loading times, but also to make the creation and maintenance of these templates easier for all Wikians. We also want you to benefit from the full power of Lua’s built in logical operators, making it easier to add conditional styling and code to your infoboxes.
Where to begin?
Once you have Lua and Scribunto support enabled on your wikia, you’ll be ready to begin. Check out our manual on Wikia Developers Wiki for detailed instruction. You’ll find links to all required modules and an example of how to use it, with step-by-step instructions. Lua will be available for our communities within the coming weeks.
How does it work?
The most important news is that if you already use a template for infoboxes, you don’t have to change articles to use the new modules. This is entirely optional.
The biggest problem infoboxes have across the Wikia network are that they are difficult to understand and lack a consistent structure and style, even though infoboxes are ultimately meant to look consistent from wikia to wikia. From Wikia’s end, this lack of consistent coding is also problematic because we can’t rely on it when developing new features and improving our search engine optimization (SEO).
The new flow solves these issues. With Lua, templates are only used to create the basic structure of the infobox using a clear and straightforward syntax. This template can then become part of the Lua module and be used for more complex styling. These functions in Lua are more straightforward than they are in MediaWiki, where you often find yourself nested within scores of curly brackets, trying to understand what exactly a snippet of code is doing.
The InfoboxBuilderView module provides you with some common, reusable elements such as Title, Header, Line or MainImage. We've developed the HTML for them and allow you to style them using Common.css.
This solution already proved itself in terms of:
- Speed - articles using the InfoboxBuilder, especially the ones with big and complex infoboxes, show performance boost up to 20%.
- Clarity - separation of logic lets you identify and fix bugs much faster and easier.
- Usability - Lua is definitely a better tool for performing any operations on a content thanks to features of an actual programming language.
I hope that you'll enjoy using the InfoboxBuilder. Even though the module is still under active development, feel free to look it over. Once development of this module is complete as well as our alpha level tests, Lua as a whole, including InfoboxBuilder, will be available to the Wikia community. If you have any suggestions regarding this module feel free to leave a comment here.
Want to receive updates on the latest Staff blog posts? Then click here to follow this blog.