Global templates/Taxonomy

This is an attempt to write a simple taxonomy of templates used on Wikimedia wikis: what templates are used for and how can they be grouped.

Making a full list of what templates are used for is challenging, because there are literally hundreds of thousands of them. The list in this document will just show several common, notable families of templates, but because of the nature of the technology, it cannot be truly comprehensive.

A central technical consideration is that the proposed repository of Global templates will be usable for all the templates, no matter to which “family” they belong (on an opt-in basis: no templates will be forced to be stored in the global repository). The templates are practically the only tool that the wiki editors have for customizing the content efficiently, and “content” here means everything that is written on wiki pages: encyclopedic articles, discussions, policy pages, help pages, essays, transcribed books, user pages, translations, and everything else. The proposed repository is for all these scenarios.

Another relatively minor technical issue is that in addition to templates, there are also modules. They are nearly the same, and there are just two significant differences:


 * 1) Templates are written in wikitext and modules are written in the Lua programming language.
 * 2) Templates are implemented as part of the core MediaWiki platform, and modules are implemented in an extension called Scribunto. This document addresses both modules and templates.

Unless noted otherwise, the examples here are from the English Wikipedia, but it’s crucial to note that this doesn’t mean that the English Wikipedia is, or should be, the “source” for all templates. This is simply done for convenience given the original language in which this page is written. In fact, there is a lot of technical innovation in template development in other wikis (Wiktionary, Commons, Wikidata, Wikinews, etc.), and in many languages, particularly French, German, Russian, Spanish, Catalan, Polish, Hebrew, Persian, Arabic, Chinese, as well as many others. Some of these are mentioned specifically in this document.

What templates are not
Even though it’s technically possible, templates are usually not used for the prose of wiki pages. The English Wikipedia policy on templates even right at the top: Templates should not normally be used to store article text.

Templates are often embedded in paragraph of wiki pages’ text, but it is generally done only for special formatting and not for usual text.

Summary table
Each row is described in more detail in further paragraphs.

General citations
“Basic” footnotes are inserted using an extension called Cite, and this works equally in all languages using the tag in wikitext. (While this uniformity is mostly good, it is also problematic in some ways. For example, having to use the same tag in right-to-left wikis causes some difficulties; see  . That issue is distinct, although the existing makeshift solutions for it also involve templates.)

The actual content of most citations, however, is formatted using templates. Citation style requires uniform formatting. The most notable English Wikipedia templates of this kind are Cite web, Cite book , and Cite journal. There are dozens of others, and they are used in almost all articles.

Some of them were imported to many other languages, but their titles and parameters are not necessarily the same, so they cannot be reliably and efficiently reused across wikis, making translation harder. A very large number of bug reports about Content Translation, for example, involve templates.

They are also not machine-readable, at least not in a portable format: One can develop software to read citation metadata from the English Wikipedia, but it will have to be rewritten almost from scratch to read citation metadata from the French Wikipedia, the German Wikipedia, etc.

Particular source citations
These templates are similar to general citation templates, but they are done for particular sources that are needed on many pages. Examples in English: Cite Catholic Encyclopedia, Britannica (for citing Encyclopædia Britannica).

Structured citation: Cite Q


A particular notable example of a template that shows citations is Cite Q. It tries to combine the power of structured data in Wikidata with the citation needs of Wikipedia (in several languages!), and pulls the citation information from Wikidata. It was specifically developed for easy reuse across languages, in preparation for possible future migration to a global templates repository.

Citation infrastructure
These are templates and modules that are not used directly by article editors, but are used internally by other citation templates to create a standardized appearance. Notable examples are Module:Citation/CS1 and Module:Citation/CS1/COinS. These modules are often discussed as pieces of infrastructure that should be shared by all wikis.

Page metadata
Many templates implement article metadata. Some of them appear in the article namespaces, and others in the Talk space. Some of them are inserted into the article, but not actually shown to readers.

Article status badges
These are mostly badges such as Featured article, Good article , etc. They are inserted into the article wikitext source, but shown in the bar at the top of the page. While the functionality is similar, the particular design and internal implementation of this template may be different in each wiki. The “featured article” process is a sign of an active and caring editing community; the lack of such a template has been brought up multiple times by editors in smaller, but developing wikis as a blocker for strengthening the local editing community.

Internal information for editors
These are templates that are not shown to readers, but are supposed to communicate information that is useful to editors. In the English Wikipedia, for example, there are templates that inform editors about the dialect of English that must be used on that page (Use American English, Use British English , Use Indian English , Use Nigerian English , etc.), or about using a certain date format (e.g. Use dmy dates ).

Metadata on talk pages
The Talk namespace was originally made for discussions about the article. Already in the mid-2000s, however, editors started using it also for storing metadata and maintenance templates for the editing community’s activities. A notable example is the English Wikipedia’s WikiProject templates, which sort articles by topics that are useful for experts in the editing community. For example, the talk page of the article Shanghai shows several such templates: WikiProject China, WikiProject Cities, WikiProject East Asia, WikiProject Politics, WikiProject Geography, and Wikipedia Version 1.0 Editorial Team.

This sorting was made by the English Wikipedia community to be used for its internal purposes, but it is so commonly used that it was used by the WMF Research team to sort articles into topics, and this sorting was subsequently applied to other languages and used for showing suggestions in the Growth extensions. While it has a useful result, this is also quite problematic because it forces the English Wikipedia community taxonomy on all the languages, without giving other communities a chance to influence it directly.

Similar WikiProject templates exist in Polish, Russian, Turkish, and other languages. Several languages expressed interest in reusing this system, but importing it was too complicated for them.

Another notable example is notifying editors about important community decisions about controversial topics. For example, the notices about English Wikipedia Arbitration Committee sanctions on the talk page of Kosovo are inserted using the generic <tvar name="Mbox">Mbox template.

Media metadata and licensing


Commons and all other Wikimedia wikis are strict about using correct copyright licenses, checking the sources of media files, and describing the files usefully. This has always been done by adding templates such as <tvar name="Information">Information, <tvar name="cc_by_sa_3_0">cc-by-sa-3.0 , artwork , and many others to the file information page. Some of this information is gradually being transitioned to the Structured Data on Commons infrastructure, but the process is far from completion.

Infoboxes
This is one of the most notable examples of features implemented using templates.

There are hundreds of infobox templates in various wikis. Roughly, there are two types of those:
 * 1) Manual infoboxes, which require the adding of each parameter in the wikitext of the article itself.
 * 2) Automated infoboxes, which provide the formatting, but pull the actual information from Wikidata.

There’s also a wide spectrum of templates in between the two extremes: they can pull information by default, or under certain circumstances (for example, only if the Wikidata statement has a reliable source), but also allow the adding of information using parameters.

The manual templates are more common in the English Wikipedia, although the usage of Wikidata-based ones is gradually increasing. The automated ones are common in Russian, Spanish, French, Hebrew, and many other languages.

There is huge demand for both types of infoboxes in smaller languages. In particular, this was brought by many editors in languages of Africa and the Philippines, but really from the whole world.

Article maintenance
Many templates are used to draw the readers’ and editors’ attention to issues of article tone, neutrality, reliability, completeness, and so on. Sometimes it applies to the whole article, and sometimes to its parts. In the English Wikipedia, they are sometimes known as “tags” or “hatnotes”.

Such templates often add the article to a category, for example, Articles needing additional references. Such categories are known as Backlogs: editors can go through them and continuously improve the wiki. In the larger Wikipedias, there may be dozens or even hundreds of such categories.

The impact of such templates has been the subject of research. For one example, see Templates and Trust-o-meters: Towards a widely deployable indicator of trust in Wikipedia by Andrew Kuznetsov, Margeigh Novotny, Jessica Klein, Diego Saez-Trumper, and Aniket Kittur.

Whole article
Examples of maintenance templates that apply to the whole article:
 * <tvar name="Unreferenced">Unreferenced : “This article does not cite any sources.”
 * <tvar name="Current">Current : “This article documents a current event. Information may change rapidly as the event progresses, and initial news reports may be unreliable.”
 * <tvar name="Underlinked">Underlinked : “This article needs more links to other articles to help integrate it into the encyclopedia.”
 * <tvar name="Disputed">Disputed : “This article's factual accuracy is disputed. Relevant discussion may be found on the talk page.”

Some of these are now used in the Growth extensions, for example <tvar name="Underlinked">. This is a nice integration with community workflows, but it also means that if a wiki wants to use the corresponding Growth feature, the template must exist and work in a way that is compatible with the extension, and this must be done in every wiki manually. If the template was global, this could be done effortlessly in all wikis.

Parts of an article
Perhaps the best known, iconic Wikipedia template is <tvar name="citation_needed">citation needed (for example, it is featured in the web comic XKCD: https://xkcd.com/285/). It’s used when some words in the article may be true, but there may be doubt about them and a reference should be added. It’s very common in the English Wikipedia, and in many other languages. In some languages, it’s also common to mark to which words exactly this template applies; it is possible in English, too, but it’s less common.

Visual Editor has some special support for this template: It can show an extra panel that shows the reason for the doubt, and a button for quick adding of a reference. This support is not universal, however: even if the template exists, this window must be configured manually on every wiki by writing a JSON file. So a wiki that wants to use it must create the template and the JSON file. This is a demonstration of how the lack of a global templates repository makes the development of WMF products inefficient.

This template is not just a signifier of doubt—it is a part of an editing workflow. Like some other maintenance templates, it adds the article to a backlog category categorized by date. Many editors go through these categories and improve these articles.

In addition to “citation needed”, there are other templates of this kind, such as clarify and who. For example, the English Wikipedia article Park Güell says (as of June 2022):

"On the other hand, many experts have tried to link the park to various symbols because of the complex iconography that Gaudí applied to the urban project."

The “[who?]” badge alerts the readers that this may be a “weasel word” and invites editors to add a specific citation.

Navigation boxes
Navigation templates, also known in English as “navboxes”, appear in a very large number of Wikipedia articles. They usually include links to articles on a related topic, and are manually curated by editors. Because an encyclopedia covers thousands of topics and every navigation box has up to several dozens of links, there are thousands of navigation templates.

Navigation boxes are used for various topics. For example, a navigation article about a musician, such as <tvar name="Neil_Young">Neil Young, may show a list of their albums, collaborators, side projects, and other related subjects.

Several navigation templates may appear in the same article. For example, the article Nancy Pelosi has <tvar name="Nancy_Pelosi">Nancy Pelosi, a navigation box for topics directly related to Pelosi herself, as well as several others, grouped under “Links to related articles”: <tvar name="Democratic_Party">Democratic Party , <tvar name="US_House_Speakers">US House Speakers , <tvar name="US_House_Leaders">US House Leaders , <tvar name="US_Order_of_Precedence">US Order of Precedence , and more.

Navigation templates can appear in different locations in the article, but typically they are used on one of these three locations:
 * 1) At the bottom of the article: common with articles about people or groups.
 * 2) In the beginning: common in more abstract topics, such as <tvar name="Psychology_sidebar">Psychology sidebar (e.g. in Cognitive bias) or <tvar name="Islam">Islam (e.g. in Hajj).
 * 3) In the middle: when a section in an article is related to another topic.

That said, practices may fluctuate in different topics and languages.

Such templates may include red links, which signify that the target of the red link is related to the theme and there is supposed to be an article about it, but the article was not written yet.

They appear not just in the English Wikipedia, but in many other languages. The aforementioned <tvar name="Neil_Young">Neil Young navbox appears in seven other languages with similar content.

Navigation boxes are useful for both editors and readers, for topic organization and for getting more information about related subjects. At the moment, however, they are completely hidden from mobile users because of the difficulty to adapt their styling to mobile screens. With the current technology, this adaptation is possible, but it would have to be made for each wiki separately. If, at least, there was the same basic implementation shared across wikis, this would only have to be done once. Many users have asked to show them on mobile screens, but this wasn’t done yet.

Article navigation
These are templates that help people find information. Some examples:
 * <tvar name="Main">Main : Used immediately after a section heading and shows a formatted link to another article that has more information about that section.
 * <tvar name="About">About and <tvar name="For">For : Shows a note at the top of the page and helps people find articles with similar names. For an example, see the article Georgia (country): at the top, it shows the text This article is about the Country of Georgia. For the US State, see Georgia (U.S. state). For other uses, see Georgia (disambiguation).
 * <tvar name="Sister_project_links">Sister project links : Usually appears towards the end of the article and shows links to pages related to the same topic in Commons, Wikibooks, Wikivoyage, etc.
 * Page navigation templates in Wikisource. For an example, see Chapter 6 of Alice’s Adventures in Wonderland: The light-green bar at the top shows links to the previous and next chapters, the table of contents, and the author.

As with other sections, there are hundreds of templates that have similar functionality. These are essentially navigation and search functions that would be useful in all languages, because all languages have articles with homographic titles and links to related and enhanced articles, but with the current technology, they have to be created in every wiki separately.

General formatting
Templates are used for various text and image formatting purposes, for example:
 * <tvar name="Blockquote">Blockquote : Quotations from books, poems, etc.
 * <tvar name="ISBN">ISBN : Formatted ISBN with a link to information about a book.
 * <tvar name="Center">Center : Show centered text.
 * <tvar name="Flex_columns">Flex columns : Show text formatted as columns.
 * <tvar name="Image_array">Image array : Shows a gallery of images. Similar to the tag, which is built into the core MediaWiki platform, but with more features.

There are hundreds of other templates of this kind.

Important comments that apply to all of them:
 * Many of them are available in other wikis and not only in English, but sometimes there are some differences in implementation.
 * Unlike it is with built-in formatting tools such as bold font of section heading, it’s impossible to select some text and mark it as centered or as a book quote. The user has to cut the text, insert the template, and then paste the text as a parameter.
 * They are comparable to styles that are available in common word processors such as Microsoft Word and Google Docs, but none of them can be inserted using their own buttons in the Visual Editor toolbar. The user always has to know how the template name is written and then use the Insert → Template button and type the template manually. In theory, it would be possible to add some of them to the toolbar, but it would have to be done for each wiki separately.

Advanced formatting and special data presentation
These templates are similar to text formatting, but usually show something more advanced.

Some examples:
 * Geographical maps: There are lots of different maps templates in different languages, some of which use OpenStreetMap, and some of which use templates that are custom-made by Wikipedians.
 * Railway maps: The <tvar name=Route_diagram_template>Routemap template offers a special, complex, custom language for designing rail maps. They are used in thousands of articles about railways in multiple languages.
 * Coordinates: These are used in many languages to show the coordinates of places described in the articles. They are used not only for displaying the numbers, but also for showing “Nearby” articles in Wikipedia mobile apps, but this can only work in the wikis in which these templates work in a manner that the apps recognize, so someone has to manually maintain compatibility in each wiki.
 * <tvar name="IPA">IPA, <tvar name="Respell">Respell , and <tvar name="Lang">Lang : these are templates that show spelling and pronunciation of names, especially foreign ones, most often in parentheses in the first sentence.
 * Chess: Chess games are described using a precise language called Portable Game Notation (PGN). In some Wikipedias, there are templates that are able to get notation in this language and display a game. Interestingly, this is not available in the English Wikipedia, but can be found, for example, in the Hebrew Wikipedia article about Alexander Alekhine. Since late 2019, there has been an effort by several volunteers to rewrite this template as an extension (Extension:ChessBrowser), so that it will be usable everywhere, but it’s unclear whether it will be deployed.
 * Unit conversion, such as <tvar name="Convert">Convert : Templates that help easily show values of distance, mass, temperature, etc., in miles/km, kg/lb, F°/C°, and so on. Even though it may seem like it’s useful mostly for Americans, they are used in many wikis.

Some advanced formatting and content types are implemented as MediaWiki extensions, for instance math and chemistry formulas, musical notation, Egyptian hieroglyphics, and timelines. This makes it possible to reuse them equally across all wikis and languages, and to insert and edit them using the Visual editor toolbar. There is nothing inherently different between Egyptian hieroglyphics and IPA, for example—both content types could be implemented as templates or as extensions, and they were implemented as they were for arbitrary historical reasons: The person who wanted to add Egyptian hieroglyphics support knew PHP and decided to do it that way, and the first person who wanted to add IPA did it using a template because it seemed simple.

Wikidata
Templates and modules wrapped in templates are essentially the only way to embed structured data from Wikidata into Wikipedia articles. The basic technology for inserting such data into wikis is the same everywhere, but the “out-of-the-box” data embedding capabilities are so rudimentary that all the wikis that actually do it developed their own ways.

In addition to the aforementioned Infoboxes and <tvar name="Cite_Q">Cite Q, Wikidata is also used for many other things, such as showing semantic maps, <tvar name="Authority_control">Authority control for partners and linked data, etc.

Another example is showing data about sports competitions. In the articles about Tour de France 2018 in French, Latvian, and Japanese, the tables were inserted using the same short code, e.g. <tvar name="Cycling_race">. This was possible thanks to the efforts of volunteers in these languages to manually synchronize the code of the templates in each wiki. If there was a global templates repository, no manual coordination would be needed, and it would have to be done just once and usable in all languages.

User page
Various templates are often used on user pages. The small userboxes, of which there are thousands, are the most obvious example, and there are also notifications of activity (active, retired, taking a break, etc.), fancy personal formatting, etc.

One of the most commonly used templates across all Wikimedia projects is a template that indicates that a certain user page belongs to a bot account. Example: User:DatBot.

User talk page
Templates are frequently used on user talk pages. Some examples:
 * Archive boxes, pointing to old discussions.
 * Warnings, posted by administrators and other users, when a user makes an unconstructive edit (vandalism, unreferenced information, copyright violation, etc.)
 * Notifications about blocks.
 * Notifications about events, such as editathons, competitions, meetups, etc.

Community discussion
Some community discussions use structures. Most notably:
 * Discussions about page deletion have special formatting achieved using templates.
 * Discussions about appointing users as administrators or receiving other permissions, have templates that help other users examine their contributions, deletions, blocks, etc.
 * In large wikis, arbitration committee discussions have a strict structure, some of which is enforced using templates. For an example, see Wikipedia:Arbitration/Requests/Case/Iranian politics.

Wiktionary
Wiktionaries heavily rely on templates to show grammatical information, conjugation tables, citations, gender and case declination, and so on. This creates a fairly nice presentation for readers, and indeed Wiktionary is Wikimedia’s most read project after Wikipedia. However, it makes Wiktionary quite difficult for editors to engage in, because to make any contribution, one must learn how to use at least some templates, which tend to have cryptic names such as t+ (translation with superscript link), lb (label sense), ux (usage examples), der (derived etymology), etc.

And this is just in the English Wiktionary; other editions, such as French, Dutch, Russian, etc., all of which are quite successful with readers, have their own templates, even though their functionality is mostly the same.

In addition to making Wiktionary hard to edit for novice editors, it also makes it very difficult to write software that processes it. Even if someone writes software that makes the English Wiktionary data machine-readable, it will have to be completely rewritten for the French Wiktionary, the Russian Wiktionary, etc.

Internal infrastructure
Many templates and modules are usually not used directly in articles or discussion pages, but only in other templates and modules. They provide internal infrastructure functions for formatting, logic, data retrieval, etc. They are also sometimes known as “metatemplates”. Some of these are among the most frequently used templates in many wikis, even though most content editors usually don’t use them directly.

Because of their importance for using other templates, many of them are copied to a very large number of wikis with very little or no change, and they are frequently proposed for globalization of some sort.

Some examples:
 * <tvar name="Icon">Icon : provides uniform design of icons in various other templates.
 * <tvar name="Ambox">Ambox : provides uniform design of hatnotes (see the “Article maintenance templates” above).
 * Module:Arguments: the most transcluded module in the English Wikipedia. Provides easy processing of arguments in Lua code.

Conclusion
This page only scratches the surface of demonstrating how templates are used. The world of templates on Wikimedia is enormous, and only the most notable examples are given here.

The ultimate goal of the Global templates proposal is to make every template that is useful to multiple wikis conveniently accessible. This will provide feature equity, and, thus, knowledge equity, to speakers of all languages and participants of all Wikimedia projects.