Manual:MediaWiki feature list

This page contains a list of features that are built into the MediaWiki software. Whether you should use MediaWiki for your own wiki depends on what kind of website you want to run with it. Wikipedia's software has many useful features that grew out of the needs of the users and the ideas of the developers -- but features also mean complexity.

Before you decide to use MediaWiki, please take a look at other Wiki engines (see [http://c2.com/cgi/wiki?WikiEngines this list] or [http://www.wikimatrix.org/ this comparison]) and see if one of them might meet your requirements better.

Requests for new features should be submitted to Phabricator.

Do I want MediaWiki?
MediaWiki software and extensions have features and benefits, strengths and weaknesses, pros and cons, and in spite of anyone's intended purposes, MediaWiki software and extensions can be used for unique, clever, inventive purposes unforeseen by the original programmers or other installers. Here is a brief list of MediaWiki features and benefits. If you develop an equivalent list of your own goals and resources, you can compare this list to your list and see where there's a match, or mismatch. Need more help deciding? There are open discussion groups on the web, and "talk" discussion pages behind each main MediaWiki page where you can seek connection with other people's experiences.

Please enhance and expand the above table's features and benefits to assist visitors to best know what they are getting into. Thanks!

One recurring problem is that system administrators decide to create a wiki, without taking into account many issues. After filling out the previous table, ask yourself the following questions, to see if a wiki is the right software for you:


 * 1) What is my site's intended purpose?


 * Wikis are ideal for collaborative editing and creation of content; they are not very well suited for other purposes, like blogging. Consider whether a wiki is an adequate option for your goals.


 * 1) How many users will this wiki be exposed to?


 * With a few exceptions, installing wiki software is unnecessary when there is a very small group of people interested in editing the wiki. The larger the user base, the higher the probability a wiki makes more sense for you.


 * 1) How many active editors do I expect to edit my wiki?


 * Wikis, due to their open nature, require some maintenance. The larger the editor base, the more hands available to perform those maintenance tasks.


 * 1) What can I do with MediaWiki?


 * MediaWiki is an extremely versatile wiki engine; it is relatively easy to install, but more importantly, allows for the use and creation of man>Special:MyLanguage/Manual:Extensions|extensions. These allow your MediaWiki installation to be extremely customizable with some knowledge of PHP.  With the proper motivation, MediaWiki can be "abused" to do almost anything.


 * 1) Is MediaWiki right for me?


 * MediaWiki has its limitations. A more considerable limitation is that MediaWiki is not meant to be an access control list.  MediaWiki raison d'etre is to provide open content; while recent versions have a much stronger security model, there are still significant gaps in individual-based security access.

How should I configure MediaWiki?
If you have decided that MediaWiki is indeed an appropriate solution, there are still more things to consider.

These questions will hopefully help you decide how to configure your wiki in a way that will allow you to minimize issues in the longer term:


 * 1) Who do I want reading my wiki?


 * In spite of all the issues with individual-based page restrictions, MediaWiki can be configured to restrict or allow access to everyone. So, ask yourself whether you want everyone in the Internet to see the contents of your wiki, or if you want to restrict that privilege to those users who have created accounts in your wiki.


 * 1) Who do I want editing my wiki?


 * Perhaps the most common question is whether you want to permit everyone to edit your wiki, similar to the Wikipedia model. MediaWiki allows for fine-grained writing restrictions; you can allow unregistered users to edit talk pages, for example, but only allow users with accounts older than a certain amount of time to edit your content pages.  You can restrict editing to sysops, or even to a custom user group you create and delegate.


 * 1) Who do I want creating an account on my wiki?


 * Depending on some of the answers to the questions above, you may want to decide to restrict who can create accounts in a wiki. You can allow anyone to create accounts; or you can even designate that privilege to administrators, who would then be responsible for creating accounts for new users via some process of your choosing.


 * 1) What powers do I want each user group to have?


 * One of the most important questions you need to answer is this one. Granting or removing privileges to a group can be extremely controversial in a large wiki, so having a good idea of what each user should be able to do is critical.  Do you want unregistered users to create pages?  Do you want registered users to create pages?  Do you want wiki administrators to be able to block and delete pages, or do you want to extend more privileges to them?  Who is responsible for granting more privileges?  Who is responsible for removing them?  Who do you want to have more fine-grained powers, such as 1>m:Special:MyLanguage/Oversight policy|oversight, 2>m:Special:MyLanguage/CheckUser policy|checkuser, and 3>m:Special:MyLanguage/Help:Reverting#Rollback|rollback?
 * See Manual:User rights and Help:User rights management for more ideas and information.


 * 1) Which extensions should I install?


 * With a few exceptions, man>Special:MyLanguage/Manual:Extensions|extensions are easy to add, whether it be while installing the wiki, or after a couple of years of the wiki being run.
 * 1)  Do I need to manage structured data? 


 * For 1>Special:MyLanguage/Manual:Managing data in MediaWiki|managing structured data within MediaWiki, several dedicated extensions exist.

With those answers, you should be able to configure the most critical aspects of your wiki. You can proceed to beginning the installation process in your operating system.

Look and feel

 * Links with shortcuts, arrangement depends on skin.
 *  - Different ways to present the site


 * Monobook, a modern skin with accesskeys and tooltips.


 * Vector, an even more modern skin with easier to read text, large amount of content space, and has an extension of the same name that adds drop down functionality to the menus.
 *  - a popular and highly customizable skin that uses Bootstrap 4. This way MediaWiki can be used for responsive, mobile-first projects.


 * User styles: Users can adapt the look and feel of the site through custom CSS on their user pages.


 * "Stub" threshold: Users can see links to articles below a certain size rendered in a different color.


 * Printable versions of articles can be generated.


 * Auto-number headings in an article (optional).


 * Intra-page Anchors (automatically generated for headings, and also with ... ).
 * Automatically generate a table of contents for long articles (optional).


 * Automatically turn ISBN numbers into links to an editable list of booksellers.


 * XHTML- or HTML5-compatible output (or darn close to it), tidy integration.

Multimedia and extensions

 * File upload feature allows to upload graphics or sound files, see Special:Upload to see in operation, and Uploading files for description. Uploaded files are listed on Recent Changes and they are also logged on Special:Log/upload.


 * Mathematical formulas using LaTeX syntax: see texvc


 * Automatic resizing of images using ImageMagick or libgd, simple syntax for image captions and image alignment


 * WikiHiero for Egyptian hieroglyphs (needs separate installed components)
 *  - for any kinds of charts (needs separate installed components)

Keeping track of edits

 * Watchlist Every page has a link "Watch this article for me". Use Special:Watchlist to track changes on the articles you declared as interesting; watched articles are also bolded in the Recent changes list.


 * User contributions in the sidebar of each user page list all articles the user has worked on, according to the database.


 * Extended recent changes with dynamic collapsing of edits to the same article and quick links to diff the edit, show the article history, show the user page, show the user talk page, or block the user (for sysops)


 * "Related changes": View a filtered version of Recent Changes to the pages linked from the current page.


 * Side-by-side diffs - the diffs are shown side-by-side, and changed portions of lines are highlighted, making it much easier to see what's what. Additionally, a diff is shown during an edit conflict so you can see exactly what you need to reintegrate.
 *  Real names  - Users can (optionally) specify a "real name" they want to use for author credits.


 * On-page credits. Administrators can enable an on-page paragraph giving credit to editors who've worked on a page.

Structures and syntax

 * By default, only 1>Special:MyLanguage/HTML restriction|restricted use of HTML is allowed. There is an option to allow full use of HTML.


 * Editing syntax based on UseMod, with support for mixing wiki-syntax and HTML. Only free links are supported for linking, not CamelCase (deliberate design decision).


 * Namespaces allow content separation (to address the namespace, use the Special:MyLanguage/Namespace:Page title syntax).


 * Discussion (Talk:) pages are separate from article pages, "meta" project pages can be separated from content pages, image pages are used for image descriptions.


 * MediaWiki: namespace contains all user interface texts, so that they can be edited like any other wiki page


 * Template: namespace for custom messages. Templates may contain string variables which are replaced with certain values passed to the template from the calling page.


 * Transclusion of arbitrary pages in any namespace: .  See Templates


 * Word-extension linking: If you include a link of the form Special:MyLanguage/wars, or Special:MyLanguage/wartime , the system will automatically display it as if you had typed wars or wartime , respectively, saving some typing.


 * Parenthetical hiding ("pipe tricks") If you include a link of the form Special:MyLanguage/kernel (mathematics), the parenthetical portion will be hidden in the link: kernel. This is useful for disambiguating different meanings of a word without making linking too difficult or cluttering up the text of articles.  This also works with cropping out namespaces when you want a cleaner-looking link: Special:MyLanguage/Wikipedia:Copyrights becomes Copyrights


 * Link to individual sections of an article, e.g. (these links may become invalid if sections are retitled or removed.)


 * Support for subpages (link to "Foo/Bar" from "Foo" by just typing "/Bar", "Foo/Bar" contains a backlink to "Foo"), these can be enabled or disabled by namespace (e.g., Wikipedia currently supports subpages on discussion pages, to make archiving easy, and on user pages, to give users space for personal pages)


 * Special keywords for inserting dynamic data such as the name of the current page, the current date, the number of articles, etc.


 * Multiple Categories can be assigned to any page, including categories themselves, creating a hierarchy of categories. Category pages automatically list all pages assigned to them, including sub-categories.  Categories allow classification and hierarchical browsing of the content.

Editing

 *  Section editing  - Users can enable an option that allows them to edit individual sections of an article (separated by headlines) instead of loading the entire article.


 * Edit toolbar (JavaScript-based) for formatting text as bold, italic etc. (fully works in Mozilla and IE, other browsers use it to show the syntax, but cannot format text inside the text area because their JavaScript implementation does not support it). If JavaScript is disabled, the toolbar is not shown.


 * Edit summary which is shown in "Recent changes". Will be prefilled with section title when section editing.


 * Double click editing: Users can enable an option that allows them to edit articles by double clicking them.


 * Edit preview (can be shown before or after edit box)


 * Handle edit conflicts (page being saved by a user while still being edited by another one, then saved again). MediaWiki will merge changes automatically if possible and otherwise require the user to do a manual merge.


 * Mark edits as minor; users can decide to hide such edits from the Recent Changes list. Only signed in users can mark edits as minor.

Spam and Vandalism

 * Prevent link spamming, and other forms of abusive editing.


 * Spam blacklist: List of spammer's domain names which users are not allowed to link to.


 * Manual:Combating vandalism: Helpful hints and links to some extensions for dealing with vandalism

Discussions

 * Talk pages: Each user (including every anonymous user) and every article has an associated page where messages can be left. These are separate namespaces (see above), "Talk:" and "User talk:".


 * Message notification (user gets a "You have new messages" notice if someone else has edited their user discussion page); this also works for anonymous users, but not for shared IP users


 * Automatic signature: Just type three tildes (~) when you edit, and on saving the page, it will be replaced with your user name and a link to your user page. If you use four tildes, the current date will be added as well.  Mainly intended for Talk pages.


 * Support for emailing users through the wiki (email address not shown to the user)

Multilanguage support

 * Translated into many languages (see en:Wikipedia:Multilingual coordination for details)


 * Interlanguage links: handy method for linking articles between wikis in different languages (each language requires its own database)


 * UTF-8 support

Backend

 * Database-driven (MySQL/MariaDB, PostgreSQL, and SQlite are supported)


 * Parser caching: rendered pages are cached to reduce redundant processing


 * Output caching: complete page output can be optionally saved as static HTML files for serving to other clients; support for Squid proxies


 * Cookie-based account and login system, but anonymous users can also edit pages


 * All revisions of an article are stored (optionally compressed)


 * RSS syndication available for many special pages, such as Special:Newpages and Special:Recentchanges
 *  RDF metadata 

Permissions

 * Different rights for anonymous users, signed in users, sysops, bureaucrats and developers.


 * Signed in users can:


 * move and rename pages


 * upload files


 * have and use a watchlist


 * mark edits as minor edits (e.g. typo correction)


 * Admins/Sysops can:


 * protect pages from editing


 * delete and undelete pages


 * edit protected pages


 * ban users by IP address


 * ban users by username, if this option is enabled


 * Bureaucrats can:


 * create sysops


 * rename users


 * flag bots


 * Developers can:


 * lock the database


 * run various maintenance tasks


 * Other permission schemes (e.g. only signed in users can edit pages) 1>Special:MyLanguage/Manual:$wgGroupPermissions|can be configured.

Search and Queries

 * Full text search


 * "Go" button allows direct viewing of a specified article's contents (tries near match if no exact hit)


 * "What links here": View pages that link to the current page (backlinks)


 * Special report pages:


 * New pages: List of newly created articles


 * Ancient pages: Articles sorted by timestamp, ascending


 * List of images


 * List of users


 * Site statistics


 * Orphaned articles (articles that have no links pointing to them)


 * Orphaned images


 * Popular articles (articles by number of visits, works only if counters are enabled)


 * Most wanted articles (non-existent articles sorted by number of links pointing to them)


 * Short articles


 * Long articles


 * List of all pages by title


 * Query API - allows scripted access to various metadata

Misc.

 * Random article display function


 * Users can configure their timezone, which is used on all report timestamps


 * The attributes of many report pages (number of results etc.) can be set in the user preferences

Empty set of help pages
Note that the files in the installation contain many links pointing to documents that are not included in the download. Most important is the empty set of help files, which will be needed by any new user of the site. To remedy these broken links, you must either (a) export from this site or manually copy and modify help pages to your installation or (b) modify the installation's parameters to change the help link targets to this site, either of which may require a substantial time investment.

Coming soon

 * See Special:MyLanguage/MediaWiki roadmap.