VisualEditor/Citation tool

The VisualEditor citation tool allows users to use your wiki's citation templates from within VisualEditor. To enable the tool, you'll need the following: a working installation of VisualEditor and Parsoid, citation templates with TemplateData, and a special .json message in order to hook VisualEditor and the templates together.

It is recommended you have the following extensions for use with common citation templates: Extension:VisualEditor, Extension:Scribunto, Extension:Cite, Extension:TemplateData, and Extension:ParserFunctions.

Importing citation templates
You'll need citation templates in your wiki's database in order to use any citation features. If you do not currently have citation templates on your wiki (for example, in the case of a new installation) you'll need to get them. Copying them from Wikipedia is the easiest way to do this. If you already have citation templates on your wiki, you can skip these steps.


 * 1) Install Extension:Scribunto, Extension:Cite/Cite.php, Extension:ParserFunctions and Extension:TemplateData. Scribunto allows you to use the programming language lua in your citation templates, and most citation templates on Wikipedia are in lua and make use of the Parser Functions. The Cite extension allows you to use the tags. The TemplateData extension lets templates provide labelling and structured information about themselves for VisualEditor.


 * 1) Export citation templates from wikipedia: Manual:Using_content_from_Wikipedia. Exporting Template:Cite_web, Template:Cite_news, Template:Cite_journal, Template:Cite_book is a good place to start.


 * 1) Upload your templates using the Special:Import page on your wiki (for example, http://localhost/index.php/Special:Import)

Template Data
You'll need Extension:TemplateData for the citation tool to be able to load the template data into the fields in VisualEditor and each template must have template data defined. For more information on how to define template data for citations, and to see screenshots of how a citation window should look with and without template data defined, see: Wikipedia:VisualEditor/TemplateData

Citation Tool Definition
To enable the VisualEditor citation tool on your wiki, you need to create a special message on your wiki:  . This is because each wiki is different and so needs to customise which features it wants to use; for example, the names of the templates used on your wiki might be different from those of other wikis.

Purpose of the configuration message
The message:

Says which templates your wiki uses for standard citations (you can state up to 5). Note that each template must have TemplateData defined or the system will be very difficult for users to understand. If your wiki does not currently use citation templates, it is common to copy the templates from the English Wikipedia as a good general set. Says which label you wish to use for each type of citation. There are a standard four, "web", "book", "news" and "journal", which correspond to   etc. Says which icon you wish to use for each type of citation. There are a standard four, "ref-cite-web", "ref-cite-book", "ref-cite-news" and "ref-cite-journal", which correspond to CSS classes with the icon as a background SVG image called   etc. Once the   configuration message is created, the citation tool will be live for all VisualEditor users on your wiki within a few minutes.

Additional types
If you are considering adding an additional type, the development team would really like to talk with you first, to give advice, help create an appropriate icon, and so we can consider whether other wikis might also want this type defined for all wikis.

To add an additional type, you will need to:

Decide what type you wish to create In this example, say you wished to have a database reference, you could call the type "database". Create a label for it For the example, you could make the label name "db" and add a label at   with the value "database". This should be in your wiki's content language. If your wiki uses multiple languages or scripts, you may need to create several of these labels. Create an icon for it For the example, you could make the icon label "ref-cite-dbase", and create the icon as an SVG file uploaded to commons, create the icon class " " in   and add the icon you want with <tvar|link>" "</> or similar.

Examples
You can see example definition messages on the en>:en:MediaWiki:Visualeditor-cite-tool-definition.json</>|English Wikipedia and the pl>:pl:MediaWiki:Visualeditor-cite-tool-definition.json</>|Polish Wikipedia.

Troubleshooting
If you navigate to Special:Version and TemplateData is installed, but fields aren't showing up in the citation dialog, you may need to open the citation template for editing, make no changes, and save it again.

This is due to a bug where TemplateData which is transcluded (i.e. present in Template:Cite_web/doc instead of directly on Template:Cite_web) is not loaded into the database until the parent template is edited; see.

Please note that the user experience will differ slightly when using your own templates other than the standard 4. For instance, a list of fields won't show up initially in the citation dialog, but you will be able to request a list of all possible fields by clicking a button.