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 branch was developed to allow the creation of pages other than wikitext documents. As of MediaWiki 1.21, ContentHandler is a part of the core MediaWiki software.

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 you are trying to convert a page that already exists and 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.

Undoing a change
All content model changes are logged at Special:Log/contentmodel on your wiki. To undo a change, go to the relevant entry in the log and click "revert". You will see a pre-filled form; click "Submit" to carry out the revert.

Note that this may not always work, particularly if the page was edited after the content model was changed in such a way to make it incompatible with the old content model. When this happens, you will have to undo the edits that made it incompatible. Alternatively, you could carry out the content model change anew and archive the old content. Ideally, content model changes are few and far between. In most situations, a page will not have to change content model more than once.