Extension:VEForAll
VEForAll Release status: stable |
|
---|---|
Description | Defines JavaScript functionality to allow other extensions to incorporate VisualEditor into their form textareas |
Author(s) | Pierre Boutet, Clément Flipo, Ike Hecht, Yaron Koren and Cindy Cicalese |
Latest version | 0.5.2 (February 2024) |
Compatibility policy | Master maintains backward compatibility. |
MediaWiki | 1.35+ |
Database changes | No |
License | GNU General Public License 2.0 or later |
Download | |
Quarterly downloads | 5 (Ranked 132nd) |
Translate the VEForAll extension if it is available at translatewiki.net | |
Issues | Open tasks · Report a bug |
The VEForAll ("VisualEditor For All") extension allows other extensions to incorporate the VisualEditor interface into textareas for user editing.
This extension does not directly impact the user interface.
Rather, it defines a JavaScript function (called "applyVisualEditor()
") that can be called by other extensions on their textareas.
At the moment, the following extensions can make use of VEForAll:
As might be expected, the VisualEditor extension must be installed for this extension to work.
Download
You can download the VEForAll code, in .zip format, here.
You can also download the code directly via Git from the MediaWiki source code repository. From a command line, you can call the following:
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/VEForAll
You can also view the code online here.
Installation
To install this extension, create a 'VEForAll' directory (either by extracting a compressed file or downloading via Git), and place this directory within the main MediaWiki 'extensions' directory. Then, in the file 'LocalSettings.php', add the following line:
wfLoadExtension( 'VEForAll' );
$wgDefaultUserOptions['visualeditor-enable'] = 1;
Using VEForAll with other extensions
VEForAll can currently be used with the following extensions: CommentStreams , Page Forms , FlexForm , VisualData
- For CommentStreams, you simply need to have VEForAll (and VisualEditor) installed, and then textareas for entering comments will automatically get the VisualEditor interface.
- For Page Forms, in the form definition, add
|editor=visualeditor
to the tag for any textarea input (including the "free text" input), and the VisualEditor interface should show up when viewing that form. - For FlexForm, use
editor="ve"
when defining a textarea, e.g.<_input type="textarea" editor="ve"></_input>
. You can have as many VE editors on a page as needed and you can even add a menu/button to the VE Editor that will open another VE Editor. - For VisualData, VEForAll is enabled by default in the form for creating a new article, and can be enabled through the Schema Builder in any input with type string and format textarea.
Configuration
By default, the toolbar is display at the bottom of the textarea.
In Page Forms, you can instead display it at the top by adding |class=toolbarOnTop
to the textarea's tag in the form definition.
You can use the "VEForAllToolbarConfigNormal" and "VEForAllToolbarConfigWide" hooks to customize the display of the VisualEditor toolbar. One or the other hook is called, depending on whether "toolbarOnTop" is set: "Normal" is called if it is not set, and "Wide" if it is.
For example, to add buttons for "Insert > Math formula", "Insert > Images and media", and "Cite" in the normal (toolbar on the bottom) case, add the following to LocalSettings.php, below the inclusion of VEForAll:
$wgHooks['VEForAllToolbarConfigNormal'][] = function( &$defaultConfigNormal ) {
$defaultConfigNormal[4]['include'][] = 'math';
$defaultConfigNormal[4]['include'][] = 'media';
$defaultConfigNormal[] = [ 'name' => 'reference' ];
};
Known issues
In some skins, the dropdowns may look rather compressed. You can apply a small CSS tweak to fix this:
table.formtable,
table.multipleTemplateInstanceTable {
border-collapse: inherit;
}
Authors and credits
VEForAll is heavily based on the (now-obsolete) VEForPageForm extension by Pierre Boutet and Clément Flipo. Some work to make the code more generic was done by Ike Hecht, Yaron Koren and Cindy Cicalese. Others who contributed to the code include Anysite and Mark Hershberger. VEForAll also includes code from the StructuredDiscussions extension.
Version history
- 0.1 - - Initial version
- 0.2 - - Made toolbar configurable; removed dependency on the Math extension; fixed submitting values for "focused" textareas; set VE direction (RTL/LTR) correctly; added "veForAll.targetCreated" hook; many other fixes
- 0.3 - - Improved support for MW 1.35+; removed support for MW < 1.29; added handling for Page Forms "max height" parameter; added escaping of pipes in table wikitext within Page Forms template fields; bug fixes
- 0.4 - - Improved support for MW 1.34+; removed support for MW < 1.32; fixes for pipe escaping
- 0.4.1 - - Fixed support for MW 1.39+; other fixes
- 0.5 - - Further fix for support for MW 1.39+; removed support for MW < 1.35
- 0.5.1 - - Fixed Parsoid handling for MW 1.40+; fixed handling of "rowspan" and "colspan" attributes; updated hook handling
- 0.5.2 - - Improved support for MW 1.41+; fix for rapid conversion between wikitext and HTML
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |
- Stable extensions/en
- Extensions with invalid or missing type/en
- GPL licensed extensions/en
- Extensions in Wikimedia version control/en
- All extensions/en
- Extensions included in Canasta/en
- Extensions included in Miraheze/en
- Extensions included in ProWiki/en
- Extensions included in semantic::core/en
- Extensions included in wiki.gg/en
- Extensions included in WikiForge/en
- WYSIWYG extensions/en
- Extensions with VisualEditor support/en