Extension:CharInsert

{{TNT|Extension
 * name = CharInsert
 * description = Allows to create JavaScript character insert boxes.
 * status = stable
 * type1 = tag
 * type2 = page action
 * type3 = mywiki
 * hook1 = ParserFirstCallInit
 * hook2 = BeforePageDisplay
 * author = Brion Vibber
 * username = Brion VIBBER
 * license = GPL-2.0+
 * php = 5.4+
 * mediawiki = 1.25+
 * version = continuous updates
 * needs-updatephp = No
 * download = {{TNT|WikimediaDownload|CharInsert}}
 * tags =
 * tags with a space-separated list of characters or tags for which you wish to allow insertion.

You can use + sign inside a tag to define a place to:
 * insert selected text or
 * place cursor if no text was selected.

You have to enclose templates and spaces inside :

Usage and sample output
→

Note: Clicking the links will have no effect since there is no text box.

Advanced Installation
Important: You must have Extension:Gadgets for this to work.

Styling


To give the charinsert lists additional styling, wrap the contents of your Edittools between  and   and add styling for them to your. This site (www.mediawiki.org) does that to make the links appear like buttons (as shown in the screenshot to the side). The below stylesheet was used for that, copy it to your to apply the same styling.

Scripting
If you have many CharInsert links, one could use Javascript to put them in separate groups and allow dynamic switching with a dropdown menu. For example to separate diacritical characters from wikisyntax etc. Several sites (such as mediawiki.org, de.wikipedia.org and en.wikipedia.org) have done this. They all implemented it in different ways though. Documented below is the way it is done on mediawiki.org:

1. Wrap all the charinsert tags on MediaWiki:Edittools into a container and give it a descriptive, unique, ID (for example "mw-edittools-charinsert"):  ...
 * 2. Wrap each individual block of charinserts into p tags like this:

 ...
 * Note:
 * Don't change the word 'mw-edittools-section'
 * The text behind "data-section-title=" will identify this group in the dropdown menu.
 * Make sure there is one group without the ' ' directive: That will be the default choice in the dropdown menu. On this site, it is called 'Standard' while the other groups are named by the language for which the characters are significant.
 * 3. Copy the contents of MediaWiki:Gadget-Edittools.js to an equally named page on your own wiki
 * 4. Add the following code to your :


 * Edittools[ResourceLoader|default]|Edittools.js

English Wikipedia CharInsert menu
For implementing CharInsert menu like the one used in English Wikipedia, either export gadgets: Charinsert-core and  Charinsert and then import them in your own Wiki through Special:Import or if you want to do it manually, mirror the following four interface pages to your Wiki:


 * MediaWiki:Gadget-charinsert-core.js (Wikipedia) - Main JavaScript file.
 * MediaWiki:Gadget-charinsert-core.css (Wikipedia) - Creates surrounding boxes around the symbols/characters giving them the look of buttons.
 * MediaWiki:Gadget-charinsert.js (Wikipedia) - CharInsert loader.
 * MediaWiki:Gadget-charinsert (Wikipedia) - For the text shown in user preferences' gadgets section.

Note: This particular English Wikipedia character set also contains templates, which will need to be defined separately, if they are to be used on your Wiki.
 * In your MediaWiki:Gadgets-definition, add the following definitions:
 * charinsert[ResourceLoader|default]|charinsert.js
 * charinsert-core[ResourceLoader|hidden|rights=hidden|dependencies=mediawiki.toolbar,jquery.textSelection,user]|charinsert-core.js|charinsert-core.css
 * MediaWiki:Edittools (Wikipedia) - Only for users with JavaScript turned off or unsupported (which disables the WikiEditor extension too), therefore not really necessary or useful either. It only shows symbols/characters as simple text below the editor window, which can, then be copy-pasted and thus being of some help to the editors. Apparently, it does not get activated in English Wikipedia for disabled JavaScript.

English Wikipedia Solution checked on: July 2nd, 2016