mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-25 06:46:26 +00:00
d371014e5d
This introduces TargetLoader, which manages plugins and RL modules in a slightly more generic fashion so that Targets themselves don't have to. This allows us to load all RL modules in one load.php request, rather than first loading ViewPageTarget which then loads the other modules. TargetLoader loads in the bottom queue, so it will be loaded as part of the main load.php request, but in VPT.init.js we still have to wait for it with using() because it might not have arrived yet. This also degrades gracefully on cached pages where TargetLoader isn't in the bottom queue: it'll be loaded as a separate request instead, which is suboptimal but no worse that what we were doing before. Right now TargetLoader is small enough that it could also be in the top queue, but in the future we want to add things like the action=visualeditor API request to it, and mw.Api is relatively big. Note: this also makes a breaking change to the plugin API: plugin callbacks no longer receive the target instance as a parameter, as they're now executed before the target has been constructed rather than after. In the long term, if we want to give plugins access to the target instance, we could give them the target promise somehow. For now, I've killed this feature because nothing used it and the change from a direct object reference to a promise would have been a breaking change anyway. Also fixed incorrect documentation index for ve.init.mw.ViewPageTarget.init. Bug: T53569 Change-Id: Ibfa6abbeaf872ae2aadc6ed9d5beba7473ea441a |
||
---|---|---|
.jsduck | ||
bin | ||
build/tasks | ||
lib | ||
modules | ||
.csslintrc | ||
.gitignore | ||
.gitmodules | ||
.gitreview | ||
.jscsrc | ||
.jshintignore | ||
.jshintrc | ||
.rubocop.yml | ||
.rubocop_todo.yml | ||
ApiVisualEditor.php | ||
ApiVisualEditorEdit.php | ||
AUTHORS.txt | ||
betafeatures-icon-VisualEditor-ltr.svg | ||
betafeatures-icon-VisualEditor-rtl.svg | ||
composer.json | ||
CONTRIBUTING.md | ||
extension.json | ||
Gemfile | ||
Gemfile.lock | ||
Gruntfile.js | ||
jsduck.json | ||
LICENSE.txt | ||
package.json | ||
README.md | ||
VisualEditor.hooks.php | ||
VisualEditor.php | ||
VisualEditorDataModule.php | ||
VisualEditorViewPageTargetInitModule.php |
VisualEditor
VisualEditor provides a visual editor for wiki pages. It is written in JavaScript and runs in a web browser.
It uses the Parsoid parser to convert wikitext documents to annotated HTML which the VisualEditor is able to load, modify and emit back to Parsoid at which point it is converted back into wikitext.
For more information about these projects, check out the VisualEditor and Parsoid pages on mediawiki.
Developing and installing
For information on installing VisualEditor on a local wiki, please see https://www.mediawiki.org/wiki/Extension:VisualEditor
For information about running tests and contributing code to VisualEditor, see CONTRIBUTING.md. Patch submissions are reviewed and managed with Gerrit. There is also API documentation available for the VisualEditor.