Extending Wikibase

Wikibase is a powerful and extensible piece of software, and a large amount of what it can do lies beyond the fairly stripped-down state Wikibase is in when you run your Docker images for the first time.

On this page you can take a quick, link-heavy tour of the resources available to help you extend your instance and give it the functionality you want and need it to have.

Templates

MediaWiki templates work a bit like text macros in that they contain content meant to be transcluded into other wiki pages. But their functionality can extend far beyond simple text replacement when scripting comes into play (see Lua below).

To view the templates installed on your (or any) instance, navigate to <your Wikibase URL>/wiki/Special:AllPages?from=&to=&namespace=10.

While there is no single repository for MediaWiki templates, Wikipedia does offer a robust template resource page. You can find them easily by searching the web or by looking through what's installed on any given instance of MediaWiki. When you find a template you want to use, follow these instructions to start using it on your instance.

A few templates that Wikibase users often find useful:

You can also check out this helpful third-party overview of templates: ryadel.com

Lua

Templates can call modules written in the Lua scripting language, making them more powerful. Check out the tutorial and see the scripting language section below.

Extensions

MediaWiki's robust software ecosystem offers a wide range of extensions, pieces of code that modify how your installation looks and works. Extensions come in many shapes and sizes, from simple and useful tweaks to large modifications in functionality; as you probably know, Wikibase is itself an extension to MediaWiki.

You can browse and download many of these extensions with the MediaWiki ExtensionDistributor. These install instructions should cover most cases, but some extensions have special instructions called out separately below.

To view the extensions you currently have installed, navigate to <your Wikibase URL>/wiki/Special:Version#mw-version-ext.

Note that the following list doesn't include extensions meant for importing data into Wikibase, several options for which are covered in some detail over at Importing data.

General utility

Scripting

Content management and spam protection

Wikibase-specific

Data quality and constraints

You can manage the quality of your Wikibase data by imposing constraints (which are actually more like guidelines).

Wikibase Quality Constraints (install) is a powerful extension that helps you impose constraints on your data.

See also the constraints portal which offers many constraints-oriented resources and tips on how to implement them effectively.

Last but not least

The Gadgets extension enables the use of gadgets (see below). You may well find that this extension is already installed on your instance, but make sure: it needs to be installed and enabled before implementing anything listed in the next section!

Gadgets

Gadgets are small interface modifications that each user of an instance can choose to activate or deactivate for their own use. Some examples can be found in the MediaWiki gadget list and Wikidata's installed gadgets

Here's a guide to writing your own, and here's how to install a gadget.

Other additions

As if templates, extensions and gadgets weren't enough, there are many other ways you can customize your Wikibase installation. Here are some of the most commonly used.

Interface messages

As an administrator (with editInterface permissions), you can customize the messages displayed to the user by Wikibase. A complete list of them can be found on the Special:AllMessages page of your instance: <your instance URL>/wiki/Special:AllMessages

Consult the System message documentation for more information.

Sitelinks allow Wikibase's MediaWiki interface to link to other wikis in a more useful way than a simple hyperlink. A good example is the language selector on Wikipedia pages; it relies on sitelinks established to wikis in other languages.

Although the Docker images handle most of the config changes shown in the Wikibase install documentation, sitelinks are a notable exception.

To get sitelinks working, first work through the sitelinks section of the install doc. Then consult the sites table for further guidance.

Sorted properties/statements

By default, Wikibase displays content from queries and on entity/item pages in the order in which each item was added to the database. To make a change in the display order, you'll need to use a sorted properties list.

Learn more about it on the Sorted Properties page, and check out Wikidata's own Sorted Properties for inspiration.

Pywikibot

For more advanced users who seek tools to help them manage their data, there's Pywikibot. It started life as a tool made for Wikipedia but was adapted to work on other Wikimedia projects, including Wikibase installations. Pywikibot amounts to a collection of scripts that can change and manipulate data programmatically, potentially saving large amounts of manual work.

Check out the third-party wiki quick start for Pywikibot to see if it might be right for your installation.