Hubbry Logo
MediaWikiMediaWikiMain
Open search
MediaWiki
Community hub
MediaWiki
logo
8 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
MediaWiki
MediaWiki
from Wikipedia

MediaWiki
Original authors
DeveloperWikimedia Foundation
Initial releaseJanuary 25, 2002; 23 years ago (2002-01-25)
Stable release
1.44.2[1] Edit this on Wikidata
Repository
Written inPHP[2]
Operating systemWindows, macOS, Linux, FreeBSD, OpenBSD, Solaris
Size79.05 MiB (compressed)
Available in459[3] languages
TypeWiki software
LicenseGPLv2+[4]
Websitewww.mediawiki.org Edit this at Wikidata

MediaWiki is a free and open-source wiki software originally developed by Magnus Manske and released for use on Wikipedia on January 25, 2002, and further enhanced by Lee Daniel Crocker,[5][6] after which development has been coordinated by the Wikimedia Foundation. It powers several wiki hosting websites across the Internet, as well as most websites hosted by the Wikimedia Foundation including Wikipedia, Wiktionary, Wikimedia Commons, Wikiquote, Meta-Wiki and Wikidata, which define a large part of the set requirements for the software.[7] Besides its usage on Wikimedia sites, MediaWiki has been used as a knowledge management and content management system on websites such as Fandom, wikiHow and major internal installations like Intellipedia and Diplopedia.

MediaWiki is written in the PHP programming language and stores all text content into a database. The software is optimized to efficiently handle large projects, which can have terabytes of content and hundreds of thousands of views per second.[7][8] Because Wikipedia is one of the world's largest and most visited websites, achieving scalability through multiple layers of caching and database replication has been a major concern for developers. Another major aspect of MediaWiki is its internationalization; its interface is available in more than 400 languages.[9] The software has hundreds of configuration settings[10] and more than 1,000 extensions available for enabling various features to be added or changed.[11]

Key features

[edit]

MediaWiki provides a rich core feature set and a mechanism to attach extensions to provide additional functionality.

Internationalization and localization

[edit]
Niklas Laxström explains the features that allowed translatewiki.net to provide MediaWiki with more than 400 locales.

Due to the strong emphasis on multilingualism in the Wikimedia projects, internationalization and localization has received significant attention by developers. The user interface has been fully or partially translated into more than 400 languages on translatewiki.net,[9] and can be further customized by site administrators (the entire interface is editable through the wiki).

Several extensions, most notably those collected in the MediaWiki Language Extension Bundle, are designed to further enhance the multilingualism and internationalization of MediaWiki.

Installation and configuration

[edit]

Installation of MediaWiki requires that the user have administrative privileges on a server running both PHP and a compatible type of SQL database. Some users find that setting up a virtual host is helpful if the majority of one's site runs under a framework (such as Zope or Ruby on Rails) that is largely incompatible with MediaWiki.[12] Cloud hosting can eliminate the need to deploy a new server.[13]

An installation PHP script is accessed via a web browser to initialize the wiki's settings. It prompts the user for a minimal set of required parameters, leaving further changes, such as enabling uploads,[14] adding a site logo,[15] and installing extensions, to be made by modifying configuration settings contained in a file called LocalSettings.php.[16] Some aspects of MediaWiki can be configured through special pages or by editing certain pages; for instance, abuse filters can be configured through a special page,[17] and certain gadgets can be added by creating JavaScript pages in the MediaWiki namespace.[18] The MediaWiki community publishes a comprehensive installation guide.[19]

Markup

[edit]

One of the earliest differences between MediaWiki (and its predecessor, UseModWiki) and other wiki engines was the use of "free links" instead of CamelCase. When MediaWiki was created, it was typical for wikis to require text like "WorldWideWeb" to create a link to a page about the World Wide Web; links in MediaWiki, on the other hand, are created by surrounding words with double square brackets, and any spaces between them are left intact, e.g. [[World Wide Web]]. This change was logical for the purpose of creating an encyclopedia, where accuracy in titles is important.

MediaWiki uses an extensible[20] lightweight wiki markup designed to be easier to use and learn than HTML. Tools exist for converting content such as tables between MediaWiki markup and HTML.[21] Efforts have been made to create a MediaWiki markup spec, but a consensus seems to have been reached that Wikicode requires context-sensitive grammar rules.[22][23] The following side-by-side comparison illustrates the differences between wiki markup and HTML:

MediaWiki syntax
(the "behind the scenes" code
used to add formatting to text)
HTML equivalent
(another type of "behind the scenes" code
used to add formatting to text)
Rendered output
(seen onscreen by a site viewer)
====A dialogue====
"Take some more [[tea]]," the March Hare said to Alice, very earnestly.

"I've had nothing yet," Alice replied in an offended tone: "so I can't take more."

"You mean you can't take ''less''," said the Hatter: "it's '''very''' easy to take ''more'' than nothing."
<h4>A dialogue</h4>

<p>"Take some more <a href="/wiki/Tea" title="Tea">tea</a>," the March Hare said to Alice, very earnestly.</p> <br>
<p>"I've had nothing yet," Alice replied in an offended tone: "so I can't take more."</p> <br>
<p>"You mean you can't take <i>less</i>," said the Hatter: "it's <b>very</b> easy to take <i>more</i> than nothing."</p>
A dialogue

"Take some more tea," the March Hare said to Alice, very earnestly.

"I've had nothing yet," Alice replied in an offended tone: "so I can't take more."

"You mean you can't take less," said the Hatter: "it's very easy to take more than nothing."

(Quotation above from Alice's Adventures in Wonderland by Lewis Carroll)

Editing interface

[edit]
Editing interface of MediaWiki 1.44.0-wmf.4 with syntax highlighting, showing the edit toolbar of 2017 wikitext editor and some examples of wiki syntax

MediaWiki's default page-editing tools have been described as somewhat challenging to learn.[24] A survey of students assigned to use a MediaWiki-based wiki found that when they were asked an open question about main problems with the wiki, 24% cited technical problems with formatting, e.g. "Couldn't figure out how to get an image in. Can't figure out how to show a link with words; it inserts a number."[25]

To make editing long pages easier, MediaWiki allows the editing of a subsection of a page (as identified by its header). A registered user can also indicate whether or not an edit is minor. Correcting spelling, grammar or punctuation are examples of minor edits, whereas adding paragraphs of new text is an example of a non-minor edit.

Sometimes while one user is editing, a second user saves an edit to the same part of the page. Then, when the first user attempts to save the page, an edit conflict occurs. The second user is then given an opportunity to merge their content into the page as it now exists following the first user's page save.

MediaWiki's user interface has been localized in many different languages. A language for the wiki content itself can also be set, to be sent in the "Content-Language" HTTP header and "lang" HTML attribute.

VisualEditor has its own integrated wikitext editing interface known as 2017 wikitext editor, the older editing interface is known as 2010 wikitext editor.

Application programming interface

[edit]

MediaWiki has an extensible web API (application programming interface) that provides direct, high-level access to the data contained in the MediaWiki databases. Client programs can use the API to log in, get data, and post changes. The API supports thin web-based JavaScript clients and end-user applications (such as vandal-fighting tools). The API can be accessed by the backend of another web site.[26] An extensive Python bot library, Pywikibot,[27] and a popular semi-automated tool called AutoWikiBrowser, also interface with the API.[28] The API is accessed via URLs such as https://en.wikipedia.org/w/api.php?action=query&list=recentchanges. In this case, the query would be asking Wikipedia for information relating to the last 10 edits to the site. One of the perceived advantages of the API is its language independence; it listens for HTTP connections from clients and can send a response in a variety of formats, such as XML, serialized PHP, or JSON.[29] Client code has been developed to provide layers of abstraction to the API.[30]

Tracking edits

[edit]

Among the features of MediaWiki to assist in tracking edits is a Recent Changes feature that provides a list of recent edits to the wiki. This list contains basic information about those edits such as the editing user, the edit summary, the page edited, as well as any tags (e.g. "possible vandalism")[31] added by customizable abuse filters and other extensions to aid in combating unhelpful edits.[32] On more active wikis, so many edits occur that it is hard to track Recent Changes manually. Anti-vandal software, including user-assisted tools,[33] is sometimes employed on such wikis to process Recent Changes items. Server load can be reduced by sending a continuous feed of Recent Changes to an IRC channel that these tools can monitor, eliminating their need to send requests for a refreshed Recent Changes feed to the API.[34][35]

Another important tool is watchlisting. Each logged-in user has a watchlist to which the user can add whatever pages he or she wishes. When an edit is made to one of those pages, a summary of that edit appears on the watchlist the next time it is refreshed.[36] As with the recent changes page, recent edits that appear on the watchlist contain clickable links for easy review of the article history and specific changes made.

There is also the capability to review all edits made by any particular user. In this way, if an edit is identified as problematic, it is possible to check the user's other edits for issues.

MediaWiki allows one to link to specific versions of articles. This has been useful to the scientific community, in that expert peer reviewers could analyse articles, improve them and provide links to the trusted version of that article.[37]

[edit]
[edit]

Navigation through the wiki is largely through internal wikilinks. MediaWiki's wikilinks implement page existence detection, in which a link is colored blue if the target page exists on the local wiki and red if it does not. If a user clicks on a red link, they are prompted to create an article with that title. Page existence detection makes it practical for users to create "wikified" articles—that is, articles containing links to other pertinent subjects—without those other articles being yet in existence.

[edit]

Interwiki links function much the same way as namespaces. A set of interwiki prefixes can be configured to cause, for instance, a page title of wikiquote:Jimbo Wales to direct the user to the Jimbo Wales article on Wikiquote.[38] Unlike internal wikilinks, interwiki links lack page existence detection functionality, and accordingly there is no way to tell whether a blue interwiki link is broken or not.

[edit]
An example of interlanguage links

Interlanguage links are the small navigation links that show up in the sidebar in most MediaWiki skins that connect an article with related articles in other languages within the same Wiki family. This can provide language-specific communities connected by a larger context, with all wikis on the same server or each on its own server.[39]

Previously, Wikipedia used interlanguage links to link an article to other articles on the same topic in other editions of Wikipedia. This was superseded by the launch of Wikidata.[40]

Content organization

[edit]

Page tabs and associated pages

[edit]
MediaWiki page tabs, using the "Vector 2010" skin. The red coloration of the "discussion" tab indicates that the article does not yet have a talk page. As with any other red wikilink, clicking on it prompts the user to create the page.

Page tabs are displayed at the top of pages. These tabs allow users to perform actions or view pages that are related to the current page. The available default actions include viewing, editing, and discussing the current page. The specific tabs displayed depend on whether the user is logged into the wiki and whether the user has sysop privileges on the wiki. For instance, the ability to move a page or add it to one's watchlist is usually restricted to logged-in users. The site administrator can add or remove tabs by using JavaScript or installing extensions.[41]

Each page has an associated history page from which the user can access every version of the page that has ever existed and generate diffs between two versions of his choice. Users' contributions are displayed not only here, but also via a "user contributions" option on a sidebar. In a 2004 article, Carl Challborn and Teresa Reimann noted that "While this feature may be a slight deviation from the collaborative, 'ego-less' spirit of wiki purists, it can be very useful for educators who need to assess the contribution and participation of individual student users."[42]

Namespaces

[edit]

MediaWiki provides many features beyond hyperlinks for structuring content. One of the earliest such features is namespaces. One of Wikipedia's earliest problems had been the separation of encyclopedic content from pages pertaining to maintenance and communal discussion, as well as personal pages about encyclopedia editors. Namespaces are prefixes before a page title (such as "User:" or "Talk:") that serve as descriptors for the page's purpose and allow multiple pages with different functions to exist under the same title. For instance, a page titled "[[The Terminator]]", in the default namespace, could describe the 1984 movie starring Arnold Schwarzenegger, while a page titled "[[User:The Terminator]]" could be a profile describing a user who chooses this name as a pseudonym. More commonly, each namespace has an associated "Talk:" namespace, which can be used to discuss its contents, such as "User talk:" or "Template talk:". The purpose of having discussion pages is to allow content to be separated from discussion surrounding the content.[43][44]

Namespaces can be viewed as folders that separate different basic types of information or functionality. Custom namespaces can be added by the site administrators. There are 16 namespaces by default for content, with 2 "pseudo-namespaces" used for dynamically generated "Special:" pages and links to media files. Each namespace on MediaWiki is numbered: content page namespaces have even numbers and their associated talk page namespaces have odd numbers.[45]

Category tags

[edit]

Users can create new categories and add pages and files to those categories by appending one or more category tags to the content text. Adding these tags creates links at the bottom of the page that take the reader to the list of all pages in that category, making it easy to browse related articles.[46] The use of categorization to organize content has been described as a combination of:

Subpages

[edit]

In addition to namespaces, content can be ordered using subpages. This simple feature provides automatic breadcrumbs of the pattern [[Page title/Subpage title]] from the page after the slash (in this case, "Subpage title") to the page before the slash (in this case, "Page title").

Customization

[edit]
Users can configure custom JavaScript that is executed on every pageview. This has led to JavaScript tools that users can "install", the "navigation popups" tool shown here displays a small preview of an article when hovering over a link title.

If the feature is enabled, users can customize their stylesheets and configure client-side JavaScript to be executed with every pageview. On Wikipedia, this has led to a large number of additional tools and helpers developed through the wiki and shared among users. For instance, navigation popups is a custom JavaScript tool that shows previews of articles when the user hovers over links and also provides shortcuts for common maintenance tasks.[48]

A screenshot of a wiki using MediaWiki with a customized skin

The entire MediaWiki user interface can be edited through the wiki itself by users with the necessary permissions (typically called "administrators"). This is done through a special namespace with the prefix "MediaWiki:", where each page title identifies a particular user interface message. Using an extension,[49] it is also possible for a user to create personal scripts, and to choose whether certain sitewide scripts should apply to them by toggling the appropriate options in the user preferences page.

Templates

[edit]

The "MediaWiki:" namespace was originally also used for creating custom text blocks that could then be dynamically loaded into other pages using a special syntax. This content was later moved into its own namespace, "Template:".

Templates are text blocks that can be dynamically loaded inside another page whenever that page is requested. The template is a special link in double curly brackets (for example "{{Disputed|date=October 2018}}"), which calls the template (in this case located at Template:Disputed) to load in place of the template call.

Templates are structured documents containing attribute–value pairs. They are defined with parameters, to which are assigned values when transcluded on an article page. The name of the parameter is delimited from the value by an equals sign. A class of templates known as infoboxes is used on Wikipedia to collect and present a subset of information about its subject, usually on the top (mobile view) or top right-hand corner (desktop view) of the document.

Pages in other namespaces can also be transcluded as templates. In particular, a page in the main namespace can be transcluded by prefixing its title with a colon; for example, {{:MediaWiki}} transcludes the article "MediaWiki" from the main namespace. Also, it is possible to mark the portions of a page that should be transcluded in several ways, the most basic of which are:[50]

  • <noinclude>...</noinclude>, which marks content that is not to be transcluded;
  • <includeonly>...</includeonly>, which marks content that is not rendered unless it is transcluded;
  • <onlyinclude>...</onlyinclude>, which marks content that is to be the only content transcluded.

A related method, called template substitution (called by adding subst: at the beginning of a template link) inserts the contents of the template into the target page (like a copy and paste operation), instead of loading the template contents dynamically whenever the page is loaded. This can lead to inconsistency when using templates, but may be useful in certain cases, and in most cases requires fewer server resources (the actual amount of savings can vary depending on wiki configuration and the complexity of the template).

Templates have found many different uses. Templates enable users to create complex table layouts that are used consistently across multiple pages, and where only the content of the tables gets inserted using template parameters. Templates are frequently used to identify problems with a Wikipedia article by putting a template in the article. This template then outputs a graphical box stating that the article content is disputed or in need of some other attention, and also categorize it so that articles of this nature can be located. Templates are also used on user pages to send users standard messages welcoming them to the site,[51] giving them awards for outstanding contributions,[52][53] warning them when their behavior is considered inappropriate,[54] notifying them when they are blocked from editing,[55] and so on.

Groups and restriction of access

[edit]

MediaWiki offers flexibility in creating and defining user groups. For instance, it would be possible to create an arbitrary "ninja" group that can block users and delete pages, and whose edits are hidden by default in the recent changes log. It is also possible to set up a group of "autoconfirmed" users that one becomes a member of after making a certain number of edits and waiting a certain number of days.[56] Some groups that are enabled by default are bureaucrats and sysops. Bureaucrats have the power to change other users' rights. Sysops have power over page protection and deletion and the blocking of users from editing. MediaWiki's available controls on editing rights have been deemed sufficient for publishing and maintaining important documents such as a manual of standard operating procedures in a hospital.[57]

MediaWiki comes with a basic set of features related to restricting access, but its original and ongoing design is driven by functions that largely relate to content, not content segregation. As a result, with minimal exceptions (related to specific tools and their related "Special" pages), page access control has never been a high priority in core development and developers have stated that users requiring secure user access and authorization controls should not rely on MediaWiki, since it was never designed for these kinds of situations. For instance, it is extremely difficult to create a wiki where only certain users can read and access some pages.[58] Here, wiki engines like Foswiki, MoinMoin and Confluence provide more flexibility by supporting advanced security mechanisms like access control lists.

Extensibility

[edit]

The MediaWiki codebase contains various hooks using callback functions to add additional PHP code in an extensible way. This allows developers to write extensions without necessarily needing to modify the core or having to submit their code for review. Installing an extension typically consists of adding a line to the configuration file, though in some cases additional changes such as database updates or core patches are required.

Five main extension points were created to allow developers to add features and functionalities to MediaWiki. Hooks are run every time a certain event happens; for instance, the ArticleSaveComplete hook occurs after a save article request has been processed.[59] This can be used, for example, by an extension that notifies selected users whenever a page edit occurs on the wiki from new or anonymous users.[60] New tags can be created to process data with opening and closing tags (<newtag>...</newtag>).[61] Parser functions can be used to create a new command ({{#if:...|...|...}}).[62] New special pages can be created to perform a specific function. These pages are dynamically generated. For example, a special page might show all pages that have one or more links to an external site or it might create a form providing user submitted feedback.[63] Skins allow users to customize the look and feel of MediaWiki.[64] A minor extension point allows the use of Amazon S3 to host image files.[65]

Extensions

[edit]

Text manipulation

[edit]
Tim Starling in 2008

Among the most popular extensions is a parser function extension, ParserFunctions, which allows different content to be rendered based on the result of conditional statements.[66] These conditional statements can perform functions such as evaluating whether a parameter is empty, comparing strings, evaluating mathematical expressions, and returning one of two values depending on whether a page exists. It was designed as a replacement for a notoriously inefficient template called {{Qif}}.[67] Schindler recounts the history of the ParserFunctions extension as follows:[68]

In 2006 some Wikipedians discovered that through an intricate and complicated interplay of templating features and CSS they could create conditional wiki text, i.e. text that was displayed if a template parameter had a specific value. This included repeated calls of templates within templates, which bogged down the performance of the whole system. The developers faced the choice of either disallowing the spreading of an obviously desired feature by detecting such usage and explicitly disallowing it within the software or offering an efficient alternative. The latter was done by Tim Starling, who announced the introduction of parser functions, wiki text that calls functions implemented in the underlying software. At first, only conditional text and the computation of simple mathematical expressions were implemented, but this already increased the possibilities for wiki editors enormously. With time further parser functions were introduced, finally leading to a framework that allowed the simple writing of extension functions to add arbitrary functionalities, like e.g. geo-coding services or widgets. This time the developers were clearly reacting to the demand of the community, being forced either to fight the solution of the issue that the community had (i.e. conditional text), or offer an improved technical implementation to replace the previous practice and achieve an overall better performance.

Another parser functions extension, StringFunctions, was developed to allow evaluation of string length, string position, and so on. Wikimedia communities, having created awkward workarounds to accomplish the same functionality,[69] clamored for it to be enabled on their projects.[70] Much of its functionality was eventually integrated into the ParserFunctions extension,[71] albeit disabled by default and accompanied by a warning from Tim Starling that enabling string functions would allow users "to implement their own parsers in the ugliest, most inefficient programming language known to man: MediaWiki wikitext with ParserFunctions."[72]

Lua extension

[edit]

Since 2012 an extension, Scribunto, has existed that allows for the creation of "modules"—wiki pages written in the scripting language Lua—which can then be run within templates and standard wiki pages. Scribunto has been installed on Wikipedia and other Wikimedia sites since 2013 and is used heavily on those sites. Scribunto code runs significantly faster than corresponding wikitext code using ParserFunctions.[73]

[edit]

Another very popular extension is a citation extension that enables footnotes to be added to pages using inline references.[74] This extension has, however, been criticized for being difficult to use and requiring the user to memorize complex syntax. A gadget called RefToolbar attempts to make it easier to create citations using common templates. MediaWiki has some extensions that are well-suited for academia, such as mathematics extensions[75] and an extension that allows molecules to be rendered in 3D.[76]

Integration

[edit]

A generic Widgets extension exists that allows MediaWiki to integrate with virtually anything. Other examples of extensions that could improve a wiki are category suggestion extensions[77] and extensions for inclusion of Flash Videos,[78] YouTube videos,[79] and RSS feeds.[80] Metavid, a site that archives video footage of the U.S. Senate and House floor proceedings, was created using code extending MediaWiki into the domain of collaborative video authoring.[81]

Combating linkspam

[edit]

There are many spambots that search the web for MediaWiki installations and add linkspam to them, despite the fact that MediaWiki uses the nofollow attribute to discourage such attempts at search engine optimization.[82] Part of the problem is that third party republishers, such as mirrors, may not independently implement the nofollow tag on their websites, so marketers can still get PageRank benefit by inserting links into pages when those entries appear on third party websites.[83] Anti-spam extensions have been developed to combat the problem by introducing CAPTCHAs,[84] blacklisting certain URLs,[85] and allowing bulk deletion of pages recently added by a particular user.[86]

Searches and queries

[edit]
A search box showing a drop-down list

MediaWiki comes pre-installed with a standard text-based search. Extensions exist to let MediaWiki use more sophisticated third-party search engines, including Elasticsearch (which since 2014 has been in use on Wikipedia), Lucene[87] and Sphinx.[88]

Various MediaWiki extensions have also been created to allow for more complex, faceted search, on both data entered within the wiki and on metadata such as pages' revision history.[89][90] Semantic MediaWiki is one such extension.[91][92]

Rich content

[edit]
Images can be arranged in galleries, a feature that is used extensively for Wikimedia's media archive, Wikimedia Commons.

Various extensions to MediaWiki support rich content generated through specialized syntax. These include mathematical formulas using LaTeX, graphical timelines over mathematical plotting, musical scores and Egyptian hieroglyphs.

The software supports a wide variety of uploaded media files, and allows image galleries and thumbnails to be generated with relative ease. There is also support for Exif metadata. MediaWiki operates the Wikimedia Commons, one of the largest free content media archives.

For WYSIWYG editing, VisualEditor is available to use in MediaWiki which simplifying editing process for editors and has been bundled since MediaWiki 1.35.[93] Other extensions exist for handling WYSIWYG editing to different degrees.[94]

Database

[edit]
A schematic of the MediaWiki database structure

MediaWiki can use either the MySQL/MariaDB, PostgreSQL or SQLite relational database management system. Support for Oracle Database and Microsoft SQL Server has been dropped since MediaWiki 1.34.[95] A MediaWiki database contains several dozen tables, including a page table that contains page titles, page ids, and other metadata;[96] and a revision table to which is added a new row every time an edit is made, containing the page id, a brief textual summary of the change performed, the user name of the article editor (or its IP address the case of an unregistered user) and a timestamp.[97][98]

In a 4½ year period prior to 2008, the MediaWiki database had 170 schema versions.[99] Possibly the largest schema change was done in 2005 with MediaWiki 1.5, when the storage of metadata was separated from that of content, to improve performance flexibility. When this upgrade was applied to Wikipedia, the site was locked for editing, and the schema was converted to the new version in about 22 hours. Some software enhancement proposals, such as a proposal to allow sections of articles to be watched via watchlist, have been rejected because the necessary schema changes would have required excessive Wikipedia downtime.[100]

Performance and storage

[edit]

Because it is used to run one of the highest-traffic sites on the Web, Wikipedia, MediaWiki's performance and scalability have been highly optimized.[101] MediaWiki supports Squid, load-balanced database replication, client-side caching, memcached or table-based caching for frequently accessed processing of query results, a simple static file cache, feature-reduced operation, revision compression, and a job queue for database operations. MediaWiki developers have attempted to optimize the software by avoiding expensive algorithms, database queries, etc., caching every result that is expensive and has temporal locality of reference, and focusing on the hot spots in the code through profiling.[102]

MediaWiki code is designed to allow for data to be written to a read-write database and read from read-only databases, although the read-write database can be used for some read operations if the read-only databases are not yet up to date. Metadata, such as article revision history, article relations (links, categories etc.), user accounts and settings can be stored in core databases and cached; the actual revision text, being more rarely used, can be stored as append-only blobs in external storage. The software is suitable for the operation of large-scale wiki farms such as Wikimedia, which had about 800 wikis as of August 2011. However, MediaWiki comes with no built-in GUI to manage such installations.

Empirical evidence shows most revisions in MediaWiki databases tend to differ only slightly from previous revisions. Therefore, subsequent revisions of an article can be concatenated and then compressed, achieving very high data compression ratios of up to 100×.[102]

For more information on the architecture, such as how it stores wikitext and assembles a page, see External links.

Limitations

[edit]

The parser serves as the de facto standard for the MediaWiki syntax, as no formal syntax has been defined. Due to this lack of a formal definition, it has been difficult to create WYSIWYG editors for MediaWiki, although several WYSIWYG extensions do exist, including the popular VisualEditor.

MediaWiki is not designed to be a suitable replacement for dedicated online forum or blogging software,[103] although extensions do exist to allow for both of these.[104][105]

It is common for new MediaWiki users to make certain mistakes, such as forgetting to sign posts with four tildes (~~~~),[106] or manually entering a plaintext signature,[107] due to unfamiliarity with the idiosyncratic particulars involved in communication on MediaWiki discussion pages. On the other hand, the format of these discussion pages has been cited as a strength by one educator, who stated that it provides more fine-grain capabilities for discussion than traditional threaded discussion forums. For example, instead of 'replying' to an entire message, the participant in a discussion can create a hyperlink to a new wiki page on any word from the original page. Discussions are easier to follow since the content is available via hyperlinked wiki page, rather than a series of reply messages on a traditional threaded discussion forum. However, except in few cases, students were not using this capability, possibly because of their familiarity with the traditional linear discussion style and a lack of guidance on how to make the content more 'link-rich'.[108]

MediaWiki by default has little support for the creation of dynamically assembled documents, or pages that aggregate data from other pages. Some research has been done on enabling such features directly within MediaWiki.[109] The Semantic MediaWiki extension provides these features. It is not in use on Wikipedia, but in more than 1,600 other MediaWiki installations.[110] The Wikibase Repository and Wikibase Repository client are however implemented in Wikidata and Wikipedia respectively, and to some extent provides semantic web features, and linking of centrally stored data to infoboxes in various Wikipedia articles.

Upgrading MediaWiki is usually fully automated, requiring no changes to the site content or template programming. Historically troubles have been encountered when upgrading from significantly older versions.[111]

Security

[edit]

MediaWiki developers have enacted security standards, both for core code and extensions.[112] SQL queries and HTML output are usually done through wrapper functions that handle validation, escaping, filtering for prevention of cross-site scripting and SQL injection.[113] Many security issues have had to be patched after a MediaWiki version release,[114] and accordingly MediaWiki.org states, "The most important security step you can take is to keep your software up to date" by subscribing to the announcement mailing list and installing security updates that are announced.[115]

Support

[edit]

Support for MediaWiki users consists of:

  • MediaWiki.org, including the Support Desk.
  • An official mailing list, Mediawiki-l.
  • Several books have been written about MediaWiki administration,[116] including some free online books.[117][118]

License

[edit]

MediaWiki is free and open-source and is distributed under the terms of the GNU General Public License version 2 or any later version. Its documentation, located at its official website at www.mediawiki.org, is released under the Creative Commons BY-SA 4.0 license, with a set of help pages intended to be freely copied into fresh wiki installations and/or distributed with MediaWiki software in the public domain instead to eliminate legal issues for wikis with other licenses.[119][120] MediaWiki's development has generally favored the use of open-source media formats.[121]

Development

[edit]

MediaWiki has an active volunteer community for development and maintenance. MediaWiki developers are spread around the world, though with a majority in the United States and Europe. Face-to-face meetings and programming sessions for MediaWiki developers have been held once or several times a year since 2004.[122]

Anyone can submit patches to the project's Git/Gerrit repository.[123] There are also paid programmers who primarily develop projects for the Wikimedia Foundation. MediaWiki developers participate in the Google Summer of Code by facilitating the assignment of mentors to students wishing to work on MediaWiki core and extension projects.[124] During the year prior to November 2012, there were about two hundred developers who had committed changes to the MediaWiki core or extensions.[125] Major MediaWiki releases are generated approximately every six months by taking snapshots of the development branch, which is kept continuously in a runnable state;[126] minor releases, or point releases, are issued as needed to correct bugs (especially security problems). MediaWiki is developed on a continuous integration development model, in which software changes are pushed live to Wikimedia sites on regular basis.[126] MediaWiki also has a public bug tracker, phabricator.wikimedia.org, which runs Phabricator. The site is also used for feature and enhancement requests.

History

[edit]
Magnus Manske in 2012

When Wikipedia was launched in January 2001, it ran on an existing wiki software system, UseModWiki. UseModWiki is written in the Perl programming language, and stores all wiki pages in text (.txt) files. This software soon proved to be limiting, in both functionality and performance. In mid-2001, Magnus Manske—a developer and student at the University of Cologne, as well as a Wikipedia editor—began working on new software that would replace UseModWiki, specifically designed for use by Wikipedia. This software was written in the PHP scripting language, and stored all of its information in a MySQL database. The new software was largely developed by August 24, 2001, and a test wiki for it was established shortly thereafter.

The first full implementation of this software was the new Meta Wikipedia on November 9, 2001. There was a desire to have it implemented immediately on the English-language Wikipedia.[127] However, Manske was apprehensive about any potential bugs harming the nascent website during the period of the final exams he had to complete immediately prior to Christmas;[128] this led to the launch on the English-language Wikipedia being delayed until January 25, 2002. The software was then, gradually, deployed on all the Wikipedia language sites of that time. This software was referred to as "the PHP script" and as "phase II", with the name "phase I", retroactively given to the use of UseModWiki.

Increasing usage soon caused load problems to arise again, and soon after, another rewrite of the software began; this time being done by Lee Daniel Crocker, which became known as "phase III". This new software was also written in PHP, with a MySQL backend, and kept the basic interface of the phase II software, but with the added functionality of a wider scalability. The "phase III" software went live on Wikipedia in July 2002.

The Wikimedia Foundation was announced on June 20, 2003. In July, Wikipedia contributor Daniel Mayer suggested the name "MediaWiki" for the software, as a play on "Wikimedia".[129] The MediaWiki name was gradually phased in, beginning in August 2003. The name has frequently caused confusion due to its (intentional) similarity to the "Wikimedia" name (which itself is similar to "Wikipedia").[130] The first version of MediaWiki, 1.1, was released in December 2003.

MediaWiki logo until April 1, 2021

The old product logo was created by Erik Möller, using a flower photograph taken by Florence Nibart-Devouard, and was originally submitted to the logo contest for a new Wikipedia logo, held from July 20 to August 27, 2003.[131][132] The logo came in third place, and was chosen to represent MediaWiki rather than Wikipedia, with the second place logo being used for the Wikimedia Foundation.[133] The double square brackets ([[ ]]) symbolize the syntax MediaWiki uses for creating hyperlinks to other wiki pages; while the sunflower represents the diversity of content on Wikipedia, its constant growth, and the wilderness.[134]

Later, Brooke Vibber, the chief technical officer of the Wikimedia Foundation,[135] took up the role of release manager.[136][101]

Major milestones in MediaWiki's development have included: the categorization system (2004); parser functions, (2006); Flagged Revisions, (2008);[68] the "ResourceLoader", a delivery system for CSS and JavaScript (2011);[137] and the VisualEditor, a "what you see is what you get" (WYSIWYG) editing platform (2013).[138]

The contest of designing a new logo was initiated on June 22, 2020, as the old logo was a bitmap image and had "high details", leading to problems when rendering at high and low resolutions, respectively. After two rounds of voting, the new and current MediaWiki logo designed by Serhio Magpie was selected on October 24, 2020, and officially adopted on April 1, 2021.[139]

Sites using MediaWiki

[edit]
Fandom also makes use of MediaWiki.

MediaWiki's most famous use has been in Wikipedia and, to a lesser degree, the Wikimedia Foundation's other projects. Fandom, a wiki hosting service formerly known as Wikia, runs on MediaWiki. Other public wikis that run on MediaWiki include wikiHow and SNPedia. WikiLeaks began as a MediaWiki-based site, but is no longer a wiki.

A number of alternative wiki encyclopedias to Wikipedia run on MediaWiki, including Citizendium, Metapedia, Scholarpedia and Conservapedia. MediaWiki is also used internally by a large number of companies, including Novell and Intel.[140][141]

Notable usages of MediaWiki within governments include Intellipedia, used by the United States Intelligence Community, Diplopedia, used by the United States Department of State, and milWiki, a part of milSuite used by the United States Department of Defense. United Nations agencies such as the United Nations Development Programme and INSTRAW chose to implement their wikis using MediaWiki, because "this software runs Wikipedia and is therefore guaranteed to be thoroughly tested, will continue to be developed well into the future, and future technicians on these wikis will be more likely to have exposure to MediaWiki than any other wiki software."[142]

The Free Software Foundation uses MediaWiki to implement the LibrePlanet site.[143]

Comparison to other online collaboration software

[edit]

Users of online collaboration software are familiar with MediaWiki's functions and layout due to its noted use on Wikipedia. A 2006 overview of social software in academia observed that "Compared to other wikis, MediaWiki is also fairly aesthetically pleasing, though simple, and has an easily customized side menu and stylesheet."[144] However, in one assessment in 2006, Confluence was deemed to be a superior product due to its very usable API and ability to better support multiple wikis.[76]

A 2009 study at the University of Hong Kong compared TWiki to MediaWiki. The authors noted that TWiki has been considered as a collaborative tool for the development of educational papers and technical projects, whereas MediaWiki's most noted use is on Wikipedia. Although both platforms allow discussion and tracking of progress, TWiki has a "Report" part that MediaWiki lacks. Students perceived MediaWiki as being easier to use and more enjoyable than TWiki. When asked whether they recommended using MediaWiki for knowledge management course group project, 15 out of 16 respondents expressed their preference for MediaWiki giving answers of great certainty, such as "of course", "for sure".[145] TWiki and MediaWiki both have flexible plug-in architecture.[146]

A 2009 study that compared students' experience with MediaWiki to that with Google Docs found that students gave the latter a much higher rating on user-friendly layout.[147]

A 2021 study conducted by the Brazilian Nuclear Engineering Institute compared a MediaWiki-based knowledge management system against two others that were based on DSpace and Open Journal Systems, respectively.[148] It highlighted ease of use as an advantage of the MediaWiki-based system, noting that because the Wikimedia Foundation had been developing MediaWiki for a site aimed at the general public (Wikipedia), "its user interface was designed to be more user-friendly from start, and has received large user feedback over a long time", in contrast to DSpace's and OJS's focus on niche audiences.[148]

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
MediaWiki is a free and open-source application designed to create and manage collaborative websites, originally developed in specifically for and other Wikimedia projects. It is licensed under the GNU General Public License version 2 or later (GPL-2.0-or-later), enabling its use, modification, and distribution by anyone, and is built to handle high-traffic sites with millions of daily views and edits from thousands of users. The software's core architecture supports a wikitext for easy , multilingual capabilities for global , and built-in features like revision history, discussion pages, user permissions, and search functionality to facilitate and community collaboration. Its extensibility through thousands of extensions and skins allows customization for diverse applications, from encyclopedias to internal documentation systems. Developed incrementally by a global volunteer community since its by and , MediaWiki has evolved through phases starting from earlier scripts and UseModWiki, becoming the standard for large-scale wikis by 2004. It powers not only and its sister projects but also thousands of independent wikis across , , and enterprise sectors, with ongoing development ensuring and for modern web environments.

Overview

History

MediaWiki originated in 2002 when developed a new PHP-based wiki engine, known as "Phase III," to address performance issues with the existing UseModWiki (Phase I) and the interim Phase II software created by for . This rewrite improved scalability and features, marking the beginning of the software that would evolve into MediaWiki. In June 2003, the was established by to oversee and its infrastructure, with MediaWiki quickly integrating as the foundational software for the foundation's projects. The first stable numbered release, MediaWiki 1.1, arrived on December 8, 2003, introducing formalized versioning and core functionalities like improved editing and support. Development continued rapidly, with the project shifting from to for in 2012 to enhance collaboration among contributors. (LTS) versions began to emphasize stability for production environments; MediaWiki 1.35, released on September 25, 2020, provided extended updates until 2023. Subsequent LTS releases included 1.39 on November 30, 2022, focusing on auto-creation of temporary users and administrative tools, and 1.43 on December 23, 2024, which introduced enhanced password reset options requiring both username and for and deprecated legacy parser methods to improve template handling efficiency. The current stable version is 1.44, released on July 2, 2025, with development for 1.45 beginning in November 2025. Key milestones in community and development included the establishment of annual developer gatherings starting around , such as hacking days at and early MediaWiki-focused meetings, evolving into structured conferences like the MediaWiki Users and Developers Conference series from 2008 onward. The most recent event, the MediaWiki Users and Developers Conference Fall 2025, took place October 28–30 in , , hosted by the German National Library of Science and Technology, with discussions on advanced topics. Significant evolution in core components enhanced MediaWiki's capabilities for structured and visual editing. The Wikibase extension, introduced in 2012, enabled support for structured data, powering projects like by allowing storage and querying of linked information. In 2013, was launched as a editing interface, simplifying page creation without requiring markup knowledge. This was complemented by the Parsoid parser in 2014, a bidirectional tool converting between wikitext and to support VisualEditor's round-trip editing and improve output consistency. These advancements have sustained MediaWiki's role in large-scale collaborative knowledge bases through 2025.

Design principles

MediaWiki is fundamentally designed as , licensed under the GNU General Public License (GPL) version 2 or later, which ensures that the source code remains freely available for modification, distribution, and study by anyone. This licensing aligns with the broader (FOSS) principles, emphasizing community-driven development and the avoidance of proprietary restrictions to foster widespread adoption and contribution. The software's core goals include enabling the dissemination of free knowledge through collaborative platforms, as guided by the Wikimedia Foundation's mission to support accessible and equitable information sharing. At its heart, MediaWiki embodies the wiki philosophy of and collective authorship, exemplified by the "anyone can edit" model that allows users to contribute content without barriers, provided they adhere to guidelines. This approach is supported by reversion-friendly mechanisms, such as comprehensive edit histories that track all changes to pages, enabling easy reversal of edits and accountability in collaborative environments. policies, facilitated by the software's discussion and revision tools, enforce a neutral point of view by encouraging balanced representation of perspectives through consensus-building rather than centralized control. is a key design tenet, allowing the software to handle large-scale deployments like , which serves millions of views daily, through features like multi-server load balancing and caching layers. Architecturally, MediaWiki employs a layered in , separating concerns across components such as the parser, , and resource loader to promote and without strictly adhering to a traditional MVC . It operates in a stateless manner, storing session data externally (e.g., in ), which facilitates horizontal scaling across distributed servers. Extensibility is achieved via a system, introduced in 2004, that allows developers to inject custom code at specific points without altering the core codebase, enabling seamless integration of extensions while preserving the separation of content from presentation through semantic markup and templating. Over time, MediaWiki's principles have evolved to prioritize , with ongoing efforts to align with (WCAG) through improvements in navigation, contrast, and compatibility starting in the 2010s. has been integral since its inception, supporting over 300 languages via message localization and right-to-left text handling to serve global audiences. More recently, there has been a focus on machine-readable structured content to enhance data interoperability, including support for formats like through core enhancements and extensions in versions such as 1.43.

Core Features

Markup and editing

MediaWiki employs Wikitext, a designed for formatting and structuring content on wiki pages, allowing users to create richly formatted text without requiring knowledge. This syntax interprets plain text characters and keywords into rendered output, supporting elements such as headings, , , emphasis, tables, and media embeds. For instance, headings are defined using equals signs surrounding the title text, with the number of signs determining the level: = Level 1 = for the top-level heading, == Level 2 == for subsections, and so on up to six levels. Unordered use asterisks (* Item) at the start of lines, while ordered employ hashes (# Item), enabling nested structures for hierarchical content. Links in Wikitext facilitate navigation between pages, with internal links formatted as [[Page name]] to reference other articles within the , optionally including piped text like [[Page name|Display text]] for custom labels. External links are created using square brackets around a and description, such as [](https://example.com Example site), which renders as a clickable phrase. Text emphasis is achieved through apostrophes: three ('''bold''') for bold, two (''italics'') for italics, and combinations for both.[](https://www.mediawiki.org/wiki/Help:Wikitext_examples) Tables are constructed with pipe-delimited cells within a frame, starting with {|and ending with|}`, as in:

{| class="wikitable" |+ Table caption ! Header 1 !! Header 2 |- | Cell 1 || Cell 2 |}

{| class="wikitable" |+ Table caption ! Header 1 !! Header 2 |- | Cell 1 || Cell 2 |}

This produces a sortable, styled table. Images and files are inserted via [[File:Filename.extension|options]], where options like thumb for thumbnails or alt=description for accessibility are specified; for example, [[File:Example.jpg|thumb|upright=1.2|alt=Sample image|Caption]]. Wikitext also includes parser functions, which are predefined directives enclosed in double braces ({{ }}) that perform dynamic operations during page rendering. A common example is {{DISPLAYTITLE:Custom Title}}, which overrides the default page title display without altering the actual page name. Editing in MediaWiki occurs through several interfaces tailored to different user preferences. The classic wikitext editor presents the raw markup in a textarea for direct modification, suitable for experienced users familiar with the syntax. Introduced in 2013, the provides a what-you-see-is-what-you-get () experience, rendering content visually while underlying Parsoid—a bidirectional parser—converts between and Wikitext for seamless saving and round-tripping. Users can switch to source editor mode within to view or tweak the underlying Wikitext if needed. Advanced editing tools enhance usability and precision. Section-specific editing allows folding and unfolding of page sections via clickable , isolating changes to subsections without loading the entire page. Undo and redo functionalities are integrated into both editors, enabling quick reversal of actions, while views compare revisions side-by-side to highlight additions, deletions, and modifications. In MediaWiki 1.43, improvements include enhanced stability to prevent errors in content handling and better cleanup mechanisms for elements like via Remex integration. Smarter template insertion aids in placing parameterized content more intuitively during edits. Change tracking features ensure collaborative oversight and accountability. Automatic edit summaries prompt users to describe their modifications upon saving, providing context for reviewers; these summaries appear in page histories and logs. Watchlists allow users to subscribe to specific pages or namespaces, delivering notifications of changes via email or the . The Recent Changes special page lists all edits in reverse chronological order, including details like timestamp, editor, byte changes, and summary, with filters for namespaces or users. features enable trusted users (patrollers) to mark edits as reviewed, flagging unchecked changes on watchlists and Recent Changes to prioritize quality control. MediaWiki facilitates user navigation through a combination of hypertext links, structured namespaces, and organizational tools that enable efficient browsing and content discovery within a wiki. These mechanisms allow contributors and readers to traverse pages seamlessly, grouping related content and providing contextual access to discussions, histories, and searches. By integrating these elements, MediaWiki supports scalable organization for large-scale collaborative projects like encyclopedias. Linking in MediaWiki encompasses several types designed to connect content internally, across wikis, and externally. Internal wikilinks, the primary method for intra-wiki navigation, use double square brackets around the target page name, such as [[Page title]], which renders as a clickable to that page; piped links allow customization of the display text, like [[Page title|Custom label]], enhancing readability without altering the underlying structure. Interwiki links extend navigation to other wikis by prefixing the target with a project code, such as [[wikipedia:Article]], facilitating cross-project references while keeping users within the MediaWiki ecosystem. Interlanguage links, often appearing in a sidebar selector, connect equivalent pages across versions of a wiki using like {{int:}} or through dedicated langlinks sections, promoting multilingual exploration. External URLs are linked via single square brackets, such as , or full syntax for inline citations, directing users outside the wiki for supplementary resources. Namespaces provide a foundational layer for organizing pages by purpose, partitioning content to avoid overlap and improve discoverability. Core namespaces include the Main namespace (no prefix, for primary articles), Talk (suffixed with "Talk:", for page-specific discussions), User (prefixed with "User:", for personal user pages), (prefixed with "Project:" or wiki-specific alias like "Wikipedia:", for meta-content), and Help (prefixed with "Help:", for instructional pages). Custom namespaces can be configured by administrators to suit specific needs, such as "Category" for organizational tags or specialized ones like "Template" for reusable elements. Each content namespace pairs with a corresponding talk namespace for threaded discussions, enabling collaborative refinement without cluttering main content. Subpages extend this structure hierarchically, allowing nested organization like [[Main Page/Subpage]], which aids in breaking down complex topics into manageable sections while maintaining navigational hierarchy. Organizational tools further enhance content structuring and access. Categories group pages thematically by appending [[Category:Foo]] to a page's wikitext, generating an automatic list of categorized items at the page bottom and a category index page for browsing; this tagging system supports dynamic sorting and filtering, crucial for large wikis. Page tabs, displayed at the top of every article, offer quick actions including "View" for reading, "Edit" for modifications, "History" for version tracking, and "Watch" to add pages to a personal watchlist for updates. Special pages, accessed via the "Special:" prefix or toolbox links, include tools like Special:Search for full-text querying and Special:Categories for viewing all category hierarchies, streamlining administrative and exploratory navigation. Recent enhancements have refined these navigation capabilities for broader accessibility. The CirrusSearch extension, which integrates for advanced , became the default search backend on wikis by late 2014, offering faster indexing, relevance scoring, and features like phrase matching to improve content discovery over the prior Lucene-based system. For mobile users, the Minerva Neue skin introduces structured navigation via a collapsible menu that adapts the sidebar and page tabs to touch interfaces, incorporating enhancements like nearby article suggestions and optimized search integration since its core inclusion in MediaWiki 1.38.

User management and access

MediaWiki supports user registration through a dedicated form accessible from the page, where individuals provide a username, password, and optional to create an account. Once registered, users log in with their credentials to gain persistent access to features like editing history and watchlists. Anonymous users, identified by their , can view content and perform edits if site permissions allow, though their contributions are attributed to the IP rather than a username. authentication is facilitated via the dedicated extension, enabling secure through third-party providers, with support integrated since 2015 for enhanced external access. Users manage personal settings through the preferences interface, including selection of interface skins for visual customization and adjustment of time zones to align display formats with local settings. Permissions in MediaWiki are organized into groups, each assigned specific rights to control actions such as editing, deleting, or protecting pages. Predefined groups include '*' for anonymous users, 'user' for basic registered accounts, 'autoconfirmed' for established users after a period of activity, 'bot' for automated processes, and 'sysop' for administrators with elevated privileges like page deletion and protection. Rights like 'edit' allow content modification, 'delete' enables page removal, and 'protect' permits restriction settings; these can overlap across groups for granular control. Administrators configure group permissions centrally using the $wgGroupPermissions array in the site's LocalSettings.php file, allowing custom assignments such as granting 'edit' to 'autoconfirmed' while restricting it from anonymous users. Access to content and features is further regulated through protection mechanisms applied to individual pages or namespaces. Protection levels include restrictions on 'edit' (preventing content changes) and 'move' (blocking renames), with cascading protection extending safeguards to all pages transcluded from a protected source, such as templates or images used across the site. Only users in groups with matching rights, typically sysops, can modify protected pages, helping maintain stability on high-traffic or sensitive content. Rate limiting enforces quotas on actions like edits or API calls, configurable via $wgRateLimits to cap attempts per user or IP—such as 10 edits per minute for new accounts—to mitigate spam and overload. Destructive operations, including deletions and protections, require explicit confirmation through dialog prompts to verify user intent and prevent accidental changes. Recent enhancements to user management emphasize security and privacy. Two-factor authentication (2FA) is supported via the OATHAuth extension, implementing time-based one-time passwords (TOTP) for added login verification, with improved integration and features in MediaWiki 1.39 and subsequent releases. For GDPR compliance, privacy tools have been bolstered since 2018, including user-initiated data exports through Special:Export for contributions and extensions enabling comprehensive personal data retrieval in formats like XML or to facilitate right-to-access requests._and_MediaWiki_software)

Technical Implementation

Installation and setup

MediaWiki requires a compatible environment to operate effectively. The software demands version 8.1 or later, with 8.3 recommended for optimal performance in recent deployments as of 2025. Supported databases include 5.7 or higher, 10.3 or higher, 10.0 or higher, or 3.24.0 or higher, though or is the most commonly used and recommended option. A such as 2.4 or is necessary to handle HTTP requests, and is required for managing PHP dependencies during setup and updates. These components ensure the wiki can process dynamic content and store data reliably. The installation process begins with downloading the latest stable release from the official MediaWiki website at mediawiki.org. After extraction, the files are uploaded to the web server's document root directory via FTP or similar tools. A database must then be created, including a dedicated user with appropriate permissions for read/write access. The web-based installer is launched by accessing the mw-config directory through a browser, which guides users through entering database credentials, site details, and generates the LocalSettings.php configuration file. Alternatively, a command-line interface (CLI) installer named mw-installer.php can be run for automated setup in server environments. Upon completion, an initial administrator account is created to manage the wiki. Basic configuration occurs primarily in the LocalSettings.php file, which is placed in the and loaded on every page request. Key settings include defining the site name and language with variables like wgSitenameandwgSitename and wgLanguageCode, uploading a custom logo via wgLogo,andconfiguringemailnotificationsthroughwgLogo, and configuring email notifications through wgEnotifUserTalk and SMTP details. Features such as mathematical rendering can be enabled by installing and activating the Math extension in this file, for example, by adding wfLoadExtension( 'Math' ); These adjustments allow administrators to tailor the wiki's appearance and functionality without altering core code. Upgrading MediaWiki involves careful steps to maintain , starting with a full of the database and files. For minor and patch releases, dependencies are updated using with the command composer update in the installation directory. Major upgrades, such as migrating from (LTS) versions like 1.39 to 1.43, require downloading the new release, replacing core files while preserving LocalSettings.php and customizations, and then running the update.php script via CLI ( maintenance/update.php) or web interface to apply schema changes. Administrators should verify compatibility with extensions and themes beforehand, and test the upgrade in a staging environment to minimize disruptions.

Database and storage

MediaWiki employs a schema, primarily designed for or , to manage wiki content, revisions, and associated metadata. The core structure revolves around several key tables that form the foundation of page storage and tracking. The page table serves as the central registry for all pages, containing essential fields such as page_id (an auto-incrementing ), page_namespace (an integer indicating the page's , like 0 for main articles), page_title (the page title as a varbinary string), page_latest (referencing the most recent revision ID), and page_is_redirect (a boolean flag). This table enables efficient lookups and navigation without storing the full content directly. Revisions are managed through the revision table, which links to the page table and records changes over time. Key fields include rev_id (), rev_page ( to page_id), rev_actor ( to the actor table for the editing user, introduced in 1.31), rev_timestamp (the edit time in binary format), rev_comment (edit summary), and rev_text_id (referencing the content in the text table). Multiple revisions can share the same text if only metadata changes, promoting storage efficiency. The text table holds the actual page content in the old_text field (a longtext or mediumblob type), alongside old_id () and old_flags (a set of flags indicating compression or methods applied to the text). This separation allows revisions to reference shared content blobs. Tracking recent activity occurs via the recentchanges table, which logs edits, uploads, and other modifications for features like watchlists and recent changes pages. Notable fields are rc_id (), rc_this_oldid (the revision ID of the change), rc_user (user ID, deprecated in favor of rc_actor since 1.31), rc_timestamp (change time), rc_type (integer for edit type, e.g., 0 for new, 1 for edit), and rc_title (the affected page title). This table supports real-time monitoring but is not the primary storage for historical data. To handle large-scale wikis, MediaWiki implements advanced storage strategies for text content. Large texts are offloaded to via the blobs table in a dedicated database, configured through the $wgExternalSharedDB setting in LocalSettings.php. This table uses blob_id (, often a hash) and blob_data (longblob) to store raw content, reducing load on the main database and enabling sharding across servers. Content is referenced by IDs in the text or slots structures rather than inline storage. Additionally, text compression is applied using flags in old_flags to minimize database size; Wikimedia productions achieve near 98% compression ratios through optimized methods like internal serialization and zlib where available. Introduced in MediaWiki 1.32, multi-content revisions (MCR) extend the model to support multiple content types per page via slots, allowing diverse formats like wikitext, JSON, or custom models in a single revision. The slots table (new in MCR) includes fields like slot_revision_id (foreign key to rev_id), slot_role_id (role such as 'main' or 'aux'), slot_content_model (integer for model ID), and slot_content_id (referencing content in content or content_models tables). The content table stores model-specific data with content_id, content_model, content_address (blob location), and content_size. This slot-based approach enables granular updates to specific content parts without rewriting the entire revision, enhancing flexibility for extensions handling structured or multilingual content. Legacy single-content pages are migrated to use a single 'main' slot. Metadata for relationships and organization is stored in dedicated tables to facilitate queries and features like "what links here." The categorylinks table records category memberships with cl_from (page_id), cl_to (category title in normalized form), cl_sortkey (custom sort key), cl_timestamp (addition time), and cl_collation (sorting rules since 1.17). Similarly, the imagelinks table tracks image usages with il_from (page_id), il_to (image filename), and il_caption (caption if present). Other link types use analogous tables like pagelinks for inter-page links and templatelinks for template inclusions. These denormalized structures optimize common operations but require updates during edits. For structured data, MediaWiki supports storage in dedicated slots (e.g., via the JSON content model) or as JSON fields in tables like page_props (key-value pairs since 1.21), enabling extensions to manage machine-readable metadata without altering core content storage. Maintenance of the database involves mechanisms for deferred processing and cache rebuilding to ensure consistency and performance. The , implemented via tables like job (with fields job_cmd, job_namespace, job_title, job_params as blob), manages asynchronous tasks such as updating link tables, refreshing caches, or processing uploads after an edit. Deferred updates are enqueued during page saves to avoid blocking user requests; jobs are executed by the runJobs.php maintenance script or incrementally during web requests. For localization, the rebuildLocalisationCache.php script regenerates the cache of interface messages and translations from extension files and wiki pages, invoked after upgrades or customizations to resolve missing keys or outdated strings.

Performance and scalability

MediaWiki employs a multi-layered caching strategy to enhance , particularly for high-traffic installations. The object cache serves as a key component, storing transient data such as database query results and session information in distributed systems like or , thereby reducing database load and improving response times for repeated operations. The parser cache complements this by retaining the fully rendered output of wiki pages, avoiding the computationally intensive re-parsing of wikitext, templates, and extensions on subsequent requests. For full-page caching, MediaWiki integrates with reverse proxies such as , which stores complete HTTP responses at the edge, significantly decreasing server-side processing for anonymous users and static content delivery. To handle large-scale deployments, MediaWiki leverages horizontal scaling techniques enabled by its stateless , where application state is externalized to shared caches or databases, allowing multiple PHP application servers to process requests interchangeably without session affinity requirements. Load balancers, such as (LVS) combined with PyBal in Wikimedia's setup, distribute traffic across these servers to ensure even utilization and fault tolerance. On the database side, read replication—using master-slave configurations in —scales query handling by directing reads to replicas, while write operations remain on the primary; sharding is explored for extreme scales but typically involves custom partitioning of tables like revisions or to distribute load across clusters. Optimization tools further support efficient operation in demanding environments. mechanisms allow targeted , either via the for individual pages or maintenance scripts like PurgeList.php for bulk operations, ensuring updated content is promptly reflected without manual intervention across caches. The job queue system defers resource-intensive tasks, such as thumbnail generation or link updates, to background processes executed by runners like the maintenance script runJobs.php or dedicated services such as mediawiki-job-runner, which process queues asynchronously to prevent web request delays. Profiling capabilities, integrated through extensions or PHP tools like Xdebug for detailed function-level tracing and Tideways for low-overhead production monitoring, help identify bottlenecks in code execution and query patterns. Recent enhancements in MediaWiki 1.43, a release, include improved management that streamlines page resolution and reduces associated database query overhead. The version also bolsters compatibility with PHP 8.1 and later, enabling just-in-time () compilation for faster script execution, and expands asynchronous handling through refined integrations for better concurrency in maintenance tasks.

Extensibility and Customization

Extension system

MediaWiki's extension system provides a modular framework for extending the software's functionality without modifying . Extensions integrate through a hook-based architecture that allows developers to inject custom code at specific points during MediaWiki's execution, such as page rendering or user . This promotes reusability and , enabling extensions to alter in a targeted manner. Central to the architecture are hooks, which are predefined events in the MediaWiki lifecycle where extensions can register callback functions. For instance, the BeforePageDisplay hook permits extensions to make final adjustments to the output page, such as injecting CSS or , just before it is sent to the user's browser. Extensions declare their hooks and other metadata in an extension.json file, which is processed by MediaWiki's ExtensionRegistry during initialization; this includes validation via the ExtensionRegistrar to ensure proper loading and compatibility. Since MediaWiki 1.25, extensions have supported integration for dependency management, allowing seamless inclusion of libraries while maintaining a skin-independent design that operates on core processes rather than UI-specific elements. Installing extensions typically involves downloading the extension files and placing them in the extensions/ directory of a MediaWiki installation. For extensions supporting , administrators can use the command composer require mediawiki/extension-name --no-update followed by composer update to handle dependencies automatically. Activation occurs by adding wfLoadExtension( 'ExtensionName' ); to the LocalSettings.php . If the extension requires changes, such as adding tables, running the maintenance script php maintenance/update.php is necessary to apply updates safely. Over 1,500 extensions are available through the official repository at mediawiki.org, categorized into core-like utilities that enhance fundamental features—such as the Cite extension for reference management—and optional add-ons for specialized tasks like multimedia integration or workflow automation. These extensions undergo validation during registration to confirm adherence to MediaWiki's standards, ensuring broad compatibility across installations. Extension development emphasizes best practices to ensure reliability and (i18n). Developers must use MediaWiki's localization system, including wfMessage() for message handling and submission to Translatewiki.net for translations, with unique prefixes to avoid conflicts. Comprehensive is recommended using PHPUnit, with tests placed in tests/phpunit/unit/ for isolated logic or tests/phpunit/integration/ for database interactions via MediaWikiUnitTestCase and MediaWikiIntegrationTestCase. Development incorporates modular architectures, , PSR-4 autoloading, and the Wikimedia\Rdbms library to support multiple database backends without relying on global state.

Templates and Lua integration

MediaWiki's templating system enables the reuse of content across pages through , where templates—pages in the Template namespace—are included via the {{Template name|param1=value1|param2=value2}}. This mechanism supports parameterized content, allowing values to be passed and substituted dynamically during page rendering. Templates integrate parser functions for conditional and branching logic, including #if for simple true/false evaluations and #switch for multi-case selections based on input parameters. , such as {{CURRENTTIME}} for inserting the current server time or {{PAGENAME}} for the current page title, further enhance dynamism by providing access to runtime variables without additional scripting. To mitigate risks of infinite recursion or performance degradation from deep nesting, MediaWiki enforces limits: the expansion depth is capped at 100 levels (since version 1.38), with each template inclusion counting as two units and each parser function as one; exceeding this triggers an "Expansion depth limit exceeded" error and categorizes the page accordingly. Lua integration arrives via the Scribunto extension, introduced in MediaWiki 1.20, which embeds as a for executing complex operations directly in wiki content. Lua code resides in pages under the Module namespace and is invoked using the parser function {{#invoke:Module name|function name|arg1|arg2}}, allowing modules to return wikitext or for seamless inclusion. Execution occurs in a sandboxed environment, isolated per invocation with configurable resource constraints—defaulting to 50 MB memory and 7 seconds of —to prevent resource exhaustion or security vulnerabilities from untrusted code. Within Lua modules, the frame object serves as the primary interface to the calling context, with frame:arguments providing a table of all passed parameters, including positional and named ones, for programmatic manipulation akin to template substitution but with full scripting capabilities like loops, conditionals, and data structures. frames can be accessed via frame:getParent() to inherit arguments from enclosing templates, supporting hierarchical logic. These features power practical applications such as infoboxes for standardized article layouts, automated citation formatting to ensure compliance with style guides, and for generating dynamic tables from structured inputs. Templates and modules offer wiki-specific customization, where local overrides replace shared or imported versions by simply creating identically named pages in the Template or Module namespaces, allowing site administrators to tailor behavior without altering core code. Integration with CSS occurs through the TemplateStyles extension for scoped styling of template output, while in skins or gadgets can extend interactivity, such as expanding collapsible sections within templated content.

Specialized extensions

MediaWiki's specialized extensions extend its core functionality to support advanced , , and user protection through modular plugins. These extensions leverage MediaWiki's extension system to integrate specialized tools without altering the base software. They are particularly valuable for wikis handling academic, , or collaborative projects, enabling features like structured querying and enhanced editing interfaces.

Text and Academic Extensions

The Cite extension facilitates the creation of footnotes and references using parser hooks such as <ref> for inline citations and <references> for rendering them at the page bottom, supporting academic and encyclopedic writing standards. SyntaxHighlight, previously known as SyntaxHighlight_GeSHi, enables for source code snippets via the <syntaxhighlight> tag, utilizing Pygments for over 500 languages to aid technical documentation. For mathematical content, the Math extension incorporates MathJax as a JavaScript-based renderer to typeset and formulas within math environments like <math>, offering an accessible alternative to server-side rendering and improving browser compatibility.

Search and Queries

CirrusSearch enhances MediaWiki's search capabilities by integrating (with a planned migration to OpenSearch), providing , relevance ranking, and features like search-as-you-type suggestions as the default engine for many installations. Semantic MediaWiki adds structured data management, allowing users to annotate pages with properties and perform queries resembling to generate dynamic reports, tables, and maps from wiki content.

Rich Content and Integration

VisualEditor introduces a what-you-see-is-what-you-get (WYSIWYG) editing interface powered by a JavaScript library, enabling rich-text manipulation of content, templates, and citations without requiring wikitext knowledge. MultimediaViewer improves media handling by overlaying full- or near-full-size images and videos directly in the browser, displaying metadata and navigation controls for better user engagement with visual assets. The OAuth extension implements an OAuth server supporting versions 1.0a and 2.0, allowing secure authentication and API access for third-party applications. Wikibase provides a framework for structured data repositories, enabling the storage, querying, and linking of entities and properties, as prominently used in Wikidata for collaborative knowledge bases.

Search Engine Optimization Extensions

MediaWiki supports search engine optimization (SEO) through various extensions that enhance the visibility of wiki content in search engine results. A dedicated category on MediaWiki.org lists 15 such extensions. One example is the RichResults extension, which adds JSON-LD structured data to article pages based on Schema.org standards, improving search engine understanding of content and enabling rich snippets in search results.

Anti-Spam and Other

ConfirmEdit integrates mechanisms, including image recognition and simple math challenges, to deter automated spam edits and registrations on public wikis. AbuseFilter empowers administrators to define conditional rules based on edit patterns, triggering actions like warnings, blocks, or reverts to mitigate proactively. Recent developments in 2025, such as the Moderator Tools project, introduce enhancements for recent changes review, including automoderator for AI-assisted reverts and improved filtering interfaces to streamline moderation workflows.

Security and Reliability

Security features

MediaWiki implements several built-in mechanisms for authentication and authorization to safeguard user sessions and prevent unauthorized actions. Session management is coordinated by the SessionManager and AuthManager frameworks, introduced in version 1.27, which handle authentication providers, session creation, and renewal while supporting multiple authentication methods without exposing sensitive credentials. Cross-site request forgery (CSRF) attacks are countered through the use of edit tokens, random strings generated for each session and required for data-modifying actions like edits or deletions, ensuring requests cannot be forged from external sites. Brute-force login attempts are limited by the $wgPasswordAttemptThrottle configuration variable, which restricts the number of failed password tries per IP address over a specified period to thwart automated attacks. For added protection, two-factor authentication (2FA) is available via the OATHAuth extension, which integrates time-based one-time passwords (TOTP) compliant with RFC 6238, requiring users to enter a code from an authenticator app alongside their password. Content security in MediaWiki focuses on neutralizing threats from untrusted input through rigorous sanitization and validation processes. User-supplied content, including wiki markup and , is processed by the core Sanitizer class, which escapes potentially malicious code to prevent (XSS) vulnerabilities during output rendering by the parser. This includes stripping or encoding dangerous elements like in attributes or scripts, while allowing safe tags defined in $wgAllowedHtmlTagsByNamespace. For file uploads, MediaWiki enforces type verification, size limits, and basic integrity checks to block executable content; advanced malware scanning, such as integration with for image analysis, can be achieved through third-party extensions or custom hooks like UploadVerifyUpload for external calls. Audit and response capabilities enable administrators to monitor and react to potential threats effectively. Detailed logging of actions such as edits, uploads, and user changes is provided via the LogFormatter class, which structures entries for display on Special:Log, supporting custom formatting through wgLogActionsHandlersforforensicanalysis.RatelimitingisconfigurablethroughwgLogActionsHandlers for forensic analysis. Rate limiting is configurable through wgRateLimits, an array defining thresholds for actions like calls or edits per user or IP, helping to curb denial-of-service attempts and spam floods by temporarily blocking excessive requests. The project maintains security through regular releases addressing identified vulnerabilities; for instance, MediaWiki 1.43 included patches for multiple CVEs, such as CVE-2025-32699 related to Parsoid denial-of-service issues. Adhering to security best practices is essential for MediaWiki deployments, particularly for protecting data in transit and at rest. HTTPS enforcement is facilitated by wgForceHTTPS,whichredirectsallHTTPtrafficto[HTTPS](/page/HTTPS),setsthesecureflagon[cookies](/page/TheCookies),andensuresencryptedconnectionstomitigatemaninthemiddleattacks.[](https://www.mediawiki.org/wiki/Manual:HTTPS)SecretkeymanagementreliesonwgForceHTTPS, which redirects all HTTP traffic to [HTTPS](/page/HTTPS), sets the secure flag on [cookies](/page/The_Cookies), and ensures encrypted connections to mitigate man-in-the-middle attacks.[](https://www.mediawiki.org/wiki/Manual:HTTPS) Secret key management relies on wgSecretKey, a site-specific random string used for hashing session IDs and tokens, which must be generated securely (e.g., via wfGenerateSecretKey()) and stored outside to prevent token forgery or . To support GDPR compliance, MediaWiki offers tools for policies, including Special:UserRights for managing user data access, revision deletion for sensitive content removal, and export features via Special:Export or the DataDump extension, enabling right-to-be-forgotten requests and audit trails for personal data processing.

Limitations and workarounds

MediaWiki faces scalability challenges primarily due to parser overhead when rendering complex pages with numerous transclusions or templates, which can significantly increase processing time during page loads. In high-write environments, database lock contention arises from the software's transaction model, where concurrent edits lead to bottlenecks as MediaWiki prioritizes consistency, potentially crippling performance on large wikis. To mitigate these, administrators commonly implement parser caching to store rendered output, reducing recomputation for subsequent views, and object caching layers like for session and query data. Additionally, offloading non-critical operations to asynchronous job queues helps alleviate database pressure by deferring tasks such as notifications or processing. The software has inherent feature gaps, including limited native support for real-time collaborative , where simultaneous changes by multiple users are not seamlessly synchronized without external tools. This is partially addressed through extensions like DiscussionTools, which succeeded the earlier Flow (Structured Discussions) extension and provides structured threading, reply widgets, and better readability on talk pages, though it focuses on asynchronous discussions rather than live co-editing. Mobile editing remains frictional, with challenges such as complex interfaces for unregistered users and limitations in advanced features like visual editing on smaller screens, despite ongoing improvements in responsive design and tools like Edit Check for previewing changes. Compatibility issues persist with legacy PHP versions, as MediaWiki 1.42 and later require 8.1 or higher, ending support for PHP versions below 8.1 in earlier releases such as 1.39–1.41 that could run on 7.4 or higher, and much older installations like 1.31 on 7.0 or higher. Extension conflicts often stem from overlapping hooks, database schema mismatches, or version incompatibilities, leading to errors during updates or activations. Workarounds include via official Docker images, available since MediaWiki 1.31 for easier dependency management and isolated environments, alongside detailed migration guides that outline backups, job clearing, and stepwise upgrades. As of 2025, critiques highlight challenges in integrating AI-generated content, such as ensuring accuracy, attribution, and alignment with editorial policies in wiki environments, which can introduce biases or low-quality additions without robust moderation. Experimental extensions like Content Translation address this by leveraging machine translation AI to assist multilingual content creation, providing suggestions while requiring human review, though full AI content generation remains cautiously experimental to maintain reliability.

Deployment and Ecosystem

Notable uses

MediaWiki powers the Wikimedia Foundation's suite of projects, including across over 300 language editions, , , , , and MediaWiki itself. These sites collectively handle approximately 24 billion pageviews per month as of October 2025, demonstrating MediaWiki's capacity for massive-scale collaborative editing and content delivery. alone, with its 338 active language versions, exemplifies how MediaWiki supports multilingual , where non-English editions have seen steady growth, contributing to over 80% of the total article count in recent years. Beyond Wikimedia, (formerly Wikia) operates a large network of fan-hosted wikis using MediaWiki version 1.43.1, upgraded in late 2025 to enhance performance and features like interactive maps. Other prominent public installations include community-driven sites like the wiki for technical documentation and Appropedia for sustainable technology resources. In government and research sectors, MediaWiki facilitates knowledge sharing in secure environments. NASA employs it for quality work instructions, engineering documentation, and avoiding operational mishaps at facilities like the , with installations dating back over a decade and ongoing enhancements as of 2025. CERN maintains CERNipedia, a local MediaWiki instance for internal documentation and workflows, integrating scraped data from organizational sources. The U.S. Department of State uses Diplopedia, an internal wiki for diplomatic since 2008. Enterprise adaptations leverage distributions like BlueSpice, which extends MediaWiki for private intranets in mid-sized companies, supporting features such as editing, Elasticsearch search, and collaborative documentation in over 150 countries. Academic and non-profit platforms, including legal wikis like Clicklaw for public access to Canadian law resources, highlight MediaWiki's versatility for specialized content. As of 2025, approximately 30,000 live websites worldwide use MediaWiki, with roughly 30,000 public wikis tracked across directories, underscoring its broad . Wikipedia's strategies, such as sharding and caching, have informed adaptations in these uses, enabling high-traffic non-English installations to handle growing user bases without proportional increases.

Development and support

MediaWiki follows an open-source development model centered on collaborative and regular releases. Since its migration to in 2012, the project has utilized Gerrit as the primary platform, where proposed changes are scrutinized for quality, , and adherence to coding standards before merging into the core codebase. Development is driven by a mix of volunteer contributors and those funded by the , with approximately 200 active participants contributing to the core and extensions. The release cycle includes minor updates every quarter for patches and bug fixes, major versions every six months, and (LTS) branches every two years, ensuring a one-year overlap for stable upgrades. Support for MediaWiki is provided through a robust ecosystem of community-driven resources. Comprehensive documentation is hosted on MediaWiki.org, covering installation, configuration, and troubleshooting. Bug reports and feature requests are managed via Phabricator, an open-source task tracking system used by the Wikimedia Foundation. Real-time discussions occur on IRC channels via Libera.Chat and internal Slack workspaces for Wikimedia staff and select collaborators. Annual events, such as the MediaWiki Users & Developers Conference, facilitate in-person collaboration and knowledge sharing among developers and users. For enterprise needs, professional vendor support is available from firms like WikiTeq, offering managed hosting, customization, and maintenance services. MediaWiki has been licensed under the GNU General Public License version 2 or later (GPL v2+) since its inception, enforcing requirements that mandate derivative works to adopt the same license, thereby promoting open-source reuse while restricting modifications. Compared to alternatives, MediaWiki stands out for its scalability in large-scale collaborative environments but may require more setup than simpler options. , for instance, uses a file-based storage system without a database, making it lighter and easier for small teams or personal use. , a Atlassian product, targets enterprise settings with integrated but lacks MediaWiki's open extensibility. Modern tools like Outline emphasize editing and intuitive interfaces for quick , though they fall short of MediaWiki's depth in handling massive, multilingual content repositories.

References

  1. https://www.mediawiki.org/wiki/MediaWiki_history
  2. https://www.mediawiki.org/wiki/Manual:MediaWiki_feature_list
  3. https://www.mediawiki.org/wiki/MediaWiki
  4. https://www.mediawiki.org/wiki/Developer_hub
  5. https://www.mediawiki.org/wiki/MediaWiki_1.35
  6. https://www.mediawiki.org/wiki/MediaWiki_1.39
  7. https://www.mediawiki.org/wiki/MediaWiki_1.43
  8. https://www.mediawiki.org/wiki/MediaWiki_1.44
  9. https://www.mediawiki.org/wiki/Release_notes
  10. https://www.mediawiki.org/wiki/Events
  11. https://www.mediawiki.org/wiki/MediaWiki_Users_and_Developers_Conference_Fall_2025
  12. https://www.mediawiki.org/wiki/VisualEditor
  13. https://www.mediawiki.org/wiki/Parsoid
  14. https://www.mediawiki.org/wiki/Design_and_development_principles
  15. https://www.mediawiki.org/wiki/Help:History
  16. https://www.mediawiki.org/wiki/Manual:MediaWiki_architecture
  17. https://www.mediawiki.org/wiki/Help:TemplateStyles
  18. https://www.mediawiki.org/wiki/Accessibility
  19. https://www.mediawiki.org/wiki/Localisation
  20. https://www.mediawiki.org/wiki/Readers/Structured_Content
  21. https://www.mediawiki.org/wiki/Wikitext
  22. https://www.mediawiki.org/wiki/Help:Formatting
  23. https://www.mediawiki.org/wiki/Help:Wikitext_examples
  24. https://www.mediawiki.org/wiki/Extension:VisualEditor
  25. https://www.mediawiki.org/wiki/Release_notes/1.43
  26. https://www.mediawiki.org/wiki/Help:Recent_changes
  27. https://www.mediawiki.org/wiki/Help:Namespaces
  28. https://www.mediawiki.org/wiki/Manual:Using_custom_namespaces
  29. https://www.mediawiki.org/wiki/Manual:Namespace
  30. https://www.mediawiki.org/wiki/Help:Categories
  31. https://www.mediawiki.org/wiki/Help:Navigation
  32. https://www.mediawiki.org/wiki/Special:AllPages
  33. https://www.mediawiki.org/wiki/User:Cpiral/CirrusSearch
  34. https://www.mediawiki.org/wiki/Skin:Minerva_Neue
  35. https://www.mediawiki.org/wiki/Help:Logging_in
  36. https://www.mediawiki.org/wiki/Manual:Preventing_access
  37. https://www.mediawiki.org/wiki/Extension:OAuth
  38. https://www.mediawiki.org/wiki/Help:Preferences
  39. https://www.mediawiki.org/wiki/Manual:User_rights
  40. https://www.mediawiki.org/wiki/Help:Protected_pages
  41. https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs
  42. https://www.mediawiki.org/wiki/Extension:OATHAuth
  43. https://www.mediawiki.org/wiki/Manual:Installation_requirements
  44. https://www.mediawiki.org/wiki/Manual:Installing_MediaWiki
  45. https://www.mediawiki.org/wiki/Manual:Configuration_settings
  46. https://www.mediawiki.org/wiki/Manual:Upgrading
  47. https://www.mediawiki.org/wiki/Manual:Page_table
  48. https://www.mediawiki.org/wiki/Manual:Database_layout
  49. https://www.mediawiki.org/wiki/Manual:Revision_table
  50. https://www.mediawiki.org/wiki/Manual:Recentchanges_table
  51. https://www.mediawiki.org/wiki/Manual:External_storage
  52. https://www.mediawiki.org/wiki/Manual:Blobs_table
  53. https://www.mediawiki.org/wiki/Multi-Content_Revisions
  54. https://www.mediawiki.org/wiki/Manual:Slot
  55. https://www.mediawiki.org/wiki/Multi-Content_Revisions/Database_Schema
  56. https://www.mediawiki.org/wiki/Manual:Managing_data_in_MediaWiki
  57. https://www.mediawiki.org/wiki/Manual:Job_queue
  58. https://www.mediawiki.org/wiki/Manual:Job_queue/For_developers
  59. https://www.mediawiki.org/wiki/Manual:Common_errors_and_symptoms
  60. https://www.mediawiki.org/wiki/Object_cache
  61. https://www.mediawiki.org/wiki/Manual:Parser_cache
  62. https://www.mediawiki.org/wiki/Manual:Varnish_caching
  63. https://wikitech.wikimedia.org/wiki/Data_Platform/Systems/MediaWiki_replicas
  64. https://www.mediawiki.org/wiki/Wikimedia_Developer_Summit/2017/Scaling_the_Wikimedia_database_schema
  65. https://www.mediawiki.org/wiki/API:Purge
  66. https://wikitech.wikimedia.org/wiki/History_of_job_queue_runners_at_WMF
  67. https://www.mediawiki.org/wiki/Manual:Profiling
  68. https://www.mediawiki.org/wiki/Manual:Hooks
  69. https://www.mediawiki.org/wiki/Manual:Hooks/BeforePageDisplay
  70. https://www.mediawiki.org/wiki/Manual:Extension_registration
  71. https://www.mediawiki.org/wiki/Composer
  72. https://www.mediawiki.org/wiki/Manual:Extensions/Installation_and_upgrade
  73. https://www.mediawiki.org/wiki/Composer/For_extensions
  74. https://www.mediawiki.org/wiki/Manual:LocalSettings.php
  75. https://www.mediawiki.org/wiki/Manual:update.php
  76. https://www.mediawiki.org/wiki/Category:All_extensions
  77. https://www.mediawiki.org/wiki/Best_practices_for_extensions
  78. https://www.mediawiki.org/wiki/Help:Transclusion
  79. https://www.mediawiki.org/wiki/Help:Magic_words
  80. https://www.mediawiki.org/wiki/Manual:Template_limits
  81. https://www.mediawiki.org/wiki/Extension:Scribunto
  82. https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual
  83. https://www.mediawiki.org/wiki/Help:Templates
  84. https://www.mediawiki.org/wiki/Extension:Cite
  85. https://www.mediawiki.org/wiki/Extension:SyntaxHighlight
  86. https://www.mediawiki.org/wiki/Extension:Math
  87. https://www.mediawiki.org/wiki/Extension:CirrusSearch
  88. https://www.mediawiki.org/wiki/Extension:Semantic_MediaWiki
  89. https://www.mediawiki.org/wiki/Extension:MultimediaViewer
  90. https://www.mediawiki.org/wiki/Extension:Wikibase
  91. https://www.mediawiki.org/wiki/Category:Search_engine_optimization_extensions
  92. https://www.mediawiki.org/wiki/Extension:RichResults
  93. https://www.mediawiki.org/wiki/Extension:ConfirmEdit
  94. https://www.mediawiki.org/wiki/Extension:AbuseFilter
  95. https://www.mediawiki.org/wiki/Moderator_Tools
  96. https://www.mediawiki.org/wiki/Manual:SessionManager_and_AuthManager
  97. https://www.mediawiki.org/wiki/Manual:Edit_token
  98. https://www.mediawiki.org/wiki/Manual:%24wgPasswordAttemptThrottle
  99. https://www.mediawiki.org/wiki/Cross-site_scripting
  100. https://www.mediawiki.org/wiki/Manual:Configuring_file_uploads
  101. https://www.mediawiki.org/wiki/Manual:%24wgRateLimits
  102. https://www.mediawiki.org/wiki/Manual:FAQ
  103. https://www.mediawiki.org/wiki/Manual:Database_access
  104. https://wikitech.wikimedia.org/wiki/MediaWiki_Engineering/Guides/Backend_performance_practices
  105. https://www.mediawiki.org/wiki/VisualEditor/Real-time_collaboration
  106. https://www.mediawiki.org/wiki/Extension:DiscussionTools
  107. https://www.mediawiki.org/wiki/Reading/Web/Advanced_mobile_contributions
  108. https://www.mediawiki.org/wiki/Download
  109. https://www.mediawiki.org/wiki/Release_notes/1.42
  110. https://www.mediawiki.org/wiki/Extension:ContentTranslation
  111. https://meta.wikimedia.org/wiki/Artificial_intelligence
  112. https://meta.wikimedia.org/wiki/Our_projects
  113. https://www.mediawiki.org/wiki/Fandom
  114. https://www.mediawiki.org/wiki/Sites_using_MediaWiki/en
  115. https://en.wikinews.org/wiki/Wikimania_2008:_MediaWiki_use_in_the_U.S._Department_of_State
  116. https://www.mediawiki.org/wiki/Gerrit
  117. https://www.mediawiki.org/wiki/Version_lifecycle
  118. https://www.mediawiki.org/wiki/Phabricator
  119. https://www.mediawiki.org/wiki/MediaWiki_on_IRC
  120. https://www.mediawiki.org/wiki/Editing_team
  121. https://www.mediawiki.org/wiki/Copyright
Add your contribution
Related Hubs
User Avatar
No comments yet.