Help:ChangeContentModel

The Special:ChangeContentModel page can be used to change the "content model" of a page. A content model, very broadly, is the format or type of a given page on a wiki. By default a page's content model is wikitext, a rich text format that makes use of wiki markup. Content models used on Wikimedia projects include css and javascript for storing code, wikibase-item for entries on Wikidata, and Campaign on Wikimedia Commons for upload campaigns such as Wiki Loves Monuments. A list of content models is available at content handlers. More technical information is available at Manual:ContentHandler.

All actions are logged to Special:Log/contentmodel, with a convenient "revert" link to undo changes if necessary. Users must have the  permission to be able to change content models. On Wikimedia projects this permission is currently granted to sysops.

Background
Traditionally, the only types of pages you could create on MediaWiki were wikitext pages: rich text documents written in wikitext markup. This is acceptable for writing encyclopedia entries on Wikipedia, but falls short for content of other types, such as blocks of source code, structured data content, or complex workflows.

With the advent of the Wikidata project (and the Wikibase extension) in 2012, the ContentHandler extension was developed to allow the creation of pages other than wikitext documents. As of MediaWiki 1.21, ContentHandler is a part of mediawiki-core.

Some generic content models include those meant for storing and presenting source code, but they can also be used to create customized editing interfaces. For example, instead of using a horrible mess of templates to structure content on a page, you could store the underlying data in a structured format such as JSON and then write a MediaWiki extension that builds a custom editing interface on top of this structured data. This approach is used by MassMessage to create delivery list pages and by CollaborationKit for creating WikiProjects. Although these extensions have their own workflows for creating pages, Special:ChangeContentModel can also be used.

As an alternative to setting content models on a page-by-page basis, you can specify alternative defaults for a given namespace. For example, the default namespace in the Module namespace is ScribuntoContent. Similarly, you can enforce that a given content model is only used in a given namespace; ScribuntoContent can only be used in the Module namespace.

Viewing a page's current content model
To view a page's current content model, click "Page Information" in the left toolbox. You can also append ?action=info to a URL to get the same page.

Changing a page's content model
Go to Special:ChangeContentModel, enter the page name you wish to change. This can be a non-existent page if you wish to create a new page that uses a different content model from the default. Next, choose the content model you wish to change to. Clicking "Submit" will carry out the change.

Note that not all conversions are possible. If the MediaWiki software cannot figure out how to re-interpret the current page's content, the content model will not be converted and you will get an error message. When this happens, it is recommended that you archive the old page and create the page anew in the new content model. For instance, you could rename Project:Foo to Project:Foo/old and then use Special:ChangeContentModel to create a new page at Project:Foo. If possible, you should include a link to Project:Foo/old on the new page.