Jump to content

Global templates/Taxonomy

From mediawiki.org

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 similar to templates, and from the user perspective, there are just two significant differences between them:

  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 or content. 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

[edit]

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

Templates are often embedded in paragraphs of wiki pages’ text, but it is generally done only for special formatting and not for usual text. {{🌎🌍🌏}}

Summary table

[edit]

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

Type Examples Notes
Citations {{Cite web}}, {{Cite book}}, {{Cite journal}}, {{Britannica}}, {{Cite Q}} Necessary in practically all Wikipedia articles, and in some other projects, too. Very frequently featured in bug reports about Content Translation.
Page metadata {{Featured article}}, {{Use dmy dates}}, {{Mbox}}, {{WikiProject Italy}}, {{Information}}, {{cc-by-sa-3.0}}, {{artwork}} The communities’ primary way to add metadata to pages.
Infoboxes {{Infobox philosopher}} An iconic Wikipedia feature, in high demand in all languages.
Article maintenance {{Unreferenced}}, {{Underlinked}}, {{Current}}, {{Disputed}}, {{citation needed}} Used not only as alerts, but also as article improvement workflows.
Navigation boxes {{Neil Young}}, {{Nancy Pelosi}}, {{Islam}}, {{Psychology sidebar}} Combines topic curation and easy navigation. Cannot be used on mobile devices because of over-complexity, even though they would be useful there.
Article navigation {{Main}}, {{About}}, {{For}}, {{Sister project links}} Necessary everywhere, and useful for structure, machine readability, and dividing articles into components.
General formatting {{Blockquote}}, {{ISBN}}, {{Center}}, {{Flex columns}}, {{Image array}} Useful in all languages and all kinds of content. Not available as proper functions in Visual Editor, but only as generic templates.
Advanced formatting and special data presentation {{Route diagram template}}, {{IPA}}, {{coord}}, {{Pgnviewer}} (chess) Not reusable, even though it would be useful in all languages for rich and informative structured data.
Wikidata {{Q}}, {{Cite Q}}, {{Authority control}}, some infoboxes The only way to insert data from Wikidata into articles.
User page Userboxes, {{Bot}} The practical way of sorting users, looking for collaborators, etc.
User talk page Warnings, talkback Used for rich, efficient communication.
Community discussion {{Userlinks}}, deletion templates Used for efficient discussion and workflows.
Wiktionary {{t+}}, {{lb}}, {{ux}}, {{der}} Gives Wiktionary its much-needed formatting and structure, but not machine-readable, cryptic for novice humans, and different in every language edition.
Internal infrastructure {{Icon}}, {{Ambox}}, Module:Arguments Not normally used directly by content editors in the main namespace, but used as the infrastructure for constructing other templates and modules. Among the most commonly used and copied to multiple projects.

Citations

[edit]

General citations

[edit]

“Basic” footnotes are inserted using an extension called Cite, and this works equally in all languages using the <ref> tag in wikitext. (While this uniformity is mostly good, it is also problematic in some ways. For example, having to use the same <ref> tag in right-to-left wikis causes some difficulties; see task T30980. 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. Many bug reports about Content Translation, for example, involve citation 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

[edit]

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

[edit]
“The frontend of WikiCite” session at the WikiCite 2020 virtual conference. The presentation about Cite Q begins at 1:12:05

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, with possible future migration to a global templates repository in mind.

Citation infrastructure

[edit]

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

[edit]

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

[edit]

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

[edit]

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 (for example, {{Use dmy dates}}).

Metadata on talk pages

[edit]

The Talk namespace was originally made for discussions about the article. Already in the mid-2000s, however, editors started also using it 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. However, it is so commonly used that it was used by the WMF Research team to sort articles into topics, and it 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 some other languages. People who edit wikis in multiple 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 {{Mbox}} template.

Media metadata and licensing

[edit]
Wedding Tapa from Fiji. Click the image to see examples of using description and license templates

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 {{Information}}, {{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

[edit]

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 adding of information locally 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

[edit]

Many templates are used to draw the readers’ and editors’ attention to issues of article tone, neutrality, reliability, completeness, and so on. They may apply to the whole page or to its part. 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

[edit]

Examples of maintenance templates that apply to the whole article:

  • {{Unreferenced}}: “This article does not cite any sources.”
  • {{Current}}: “This article documents a current event. Information may change rapidly as the event progresses, and initial news reports may be unreliable.”
  • {{Underlinked}}: “This article needs more links to other articles to help integrate it into the encyclopedia.”
  • {{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 {{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

[edit]

Perhaps the best known, iconic Wikipedia template is {{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. A wiki that wants to use it must therefore 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 January 2023):

On the other hand, many experts[who?] 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. {{🌎🌍🌏}}

[edit]

Navigation templates, also known in English as “navboxes”, appear in millions 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 template about a musician, such as {{Neil Young}}, may show a list of their albums, collaborators, side projects, and other related subjects.

Multiple navigation templates may appear in the same article. For example, the article Nancy Pelosi has {{Nancy Pelosi}}, a navigation box for topics directly related to Pelosi herself, as well as some others, grouped under “Links to related articles”: {{Democratic Party}}, {{US House Speakers}}, {{US House Leaders}}, {{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 {{Psychology sidebar}} (for example, in Cognitive bias) or {{Islam}} (for example, 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 an article about the topic should exist, but was not written yet.

They appear not just in the English Wikipedia, but in many other languages. The aforementioned {{Neil Young}} navbox appears in nine other languages with similar content.

Navigation boxes are useful for both editors and readers, for topic organization and for getting information about related subjects. As of January 2023, however, they are completely hidden from mobile users because of the difficulty to adapt their styling to small 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 devices, but this wasn’t done yet. {{🌎🌍🌏}}

Article navigation

[edit]

These are templates that help people find information. Some examples:

  • {{Main}}: Used immediately after a section heading and shows a formatted link to another article that has expanded information about the subject of that section.
  • {{About}} and {{For}}: Show 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).
  • {{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

[edit]

Templates are used for various text and image formatting purposes, for example:

  • {{Blockquote}}: Shows quotations from books, poems, etc.
  • {{ISBN}}: Shows a formatted ISBN with a link to information about a book.
  • {{Center}}: Shows centered text.
  • {{Flex columns}}: Shows text formatted as columns.
  • {{Image array}}: Shows a gallery of images. Similar to the <gallery> 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 there are some differences in implementation.
  • Unlike it is with built-in formatting tools such as bold font (''') or 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 dedicated buttons in the Visual Editor toolbar. The user always has to know how the template name is written and then use the Insert {{#ifeq|ltr|rtl|←|→}} 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

[edit]

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 {{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.
  • {{IPA}}, {{Respell}}, and {{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 can 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 {{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 as if 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

[edit]

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 {{Cite Q}}, Wikidata is also used for many other things, such as showing semantic maps, {{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, for example, {{Cycling race/listofteams|Q28859163}}. 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

[edit]

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

[edit]

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

[edit]

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

[edit]

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}} (sense for label), {{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 templates of their own, 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

[edit]

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.

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

Some examples:

  • {{Icon}}: provides uniform design of icons in various other templates.
  • {{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

[edit]

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. {{🌎🌍🌏}}