Go to file
Bartosz Dziewoński 58757d4e3e Use built-in mw.Api 'badtoken' handling, also 'assert'/'assertuser'
When the user is saving their edit, we want to ensure that they
understand how it will be attributed. If the user gets logged out or
logs in in another tab, we want to display a message about it before
saving.

Instead of manually managing tokens and handling the 'badtoken' error
to detect this, use the 'assert'/'assertuser' parameters for the API
to detect it for us. Thanks to this we can rely on automatic retrying
for 'badtoken' errors in mw.Api#postWithToken.

It will be possible to share some of this code with other extensions
that already use ArticleTargetSaver, namely DiscussionTools, now that
it doesn't need to manage tokens for VisualEditor.

Bug: T245327
Depends-On: I485f99e1f5f493262b0c9af22370da01adf1e09c
Change-Id: I37f8e89b6d92c419d1b6569891612256342f8139
2020-02-15 03:37:22 +01:00
.jsduck Update VE core submodule to master (e1760b7f7) 2020-02-06 12:05:48 -08:00
.phan Add phan 2019-05-31 14:48:22 +00:00
bin updateSubmodule: Put list in topo (merged), not written, order 2018-05-10 08:51:37 -07:00
build eslint: Remove unused prefer-template rule; use proper globals values 2019-10-07 17:22:24 +00:00
i18n Localisation updates from https://translatewiki.net. 2020-02-14 08:26:51 +01:00
images Merge "Re-crush beta feature SVG screenshots" 2018-02-08 12:18:28 +00:00
includes Hooks::isSupportedEditPage: Re-format to make the logic clearer 2020-02-12 15:39:55 -08:00
lib Update VE core submodule to master (178f5e9e1) 2020-02-12 15:37:16 -08:00
maintenance doc: Bump copyright year for 2020 2020-01-08 09:13:24 -08:00
modules Use built-in mw.Api 'badtoken' handling, also 'assert'/'assertuser' 2020-02-15 03:37:22 +01:00
screenshots
.eslintrc.json Replace $.when with ve.promiseAll 2019-11-04 22:06:54 +08:00
.gitignore eslint: Enable caching 2019-02-19 18:53:11 +00:00
.gitmodules .gitmodules: Update gerrit URI syntax, deprecated ages ago, now unsupported 2019-03-19 16:49:03 +00:00
.gitreview .gitreview: swapping defaultbranch for track 2016-10-25 10:58:48 +02:00
.mailmap Update AUTHORS.txt for the last couple of years' work 2018-01-03 11:51:37 -08:00
.phpcs.xml Fix new documentation sniffs 2020-01-10 16:28:16 -08:00
.rubocop.yml build: Bump Ruby cruft to avoid security warnings for old rubocop 2017-11-28 12:09:20 -08:00
.rubocop_todo.yml build: Bump Ruby cruft to avoid security warnings for old rubocop 2017-11-28 12:09:20 -08:00
.stylelintrc.json stylelint: Enforce class name pattern 2019-01-13 15:14:53 +00:00
AUTHORS.txt Remove EasyDeflate libs, upstreamed to core 2018-07-26 18:18:52 +00:00
composer.json build: Updating composer dependencies 2020-01-26 18:27:39 +00:00
CONTRIBUTING.md doc: Bump copyright year for 2020 2020-01-08 09:13:24 -08:00
extension.json Improve rendering of audio files (for real this time) 2020-02-14 04:18:28 +01:00
Gemfile build: Use commons_upload v1.2.1 Ruby gem for language screenshots 2018-03-15 17:32:47 +01:00
Gemfile.lock build: Use commons_upload v1.2.1 Ruby gem for language screenshots 2018-03-15 17:32:47 +01:00
Gruntfile.js build: Update linters 2019-11-01 16:20:22 +00:00
jsduck.json Update VE core submodule to master (0b17a137b) 2019-09-05 13:03:41 -07:00
LICENSE.txt doc: Bump copyright year for 2020 2020-01-08 09:13:24 -08:00
package-lock.json build: Updating npm dependencies 2020-01-07 09:54:44 +00:00
package.json build: Updating npm dependencies 2020-01-07 09:54:44 +00:00
Rakefile build: npm/rake entry point for screenshots upload 2018-03-07 23:23:30 +01:00
README.md
VisualEditor.i18n.alias.php doc: Bump copyright year for 2020 2020-01-08 09:13:24 -08:00
VisualEditor.php doc: Bump copyright year for 2020 2020-01-08 09:13:24 -08:00

devDependency Status

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.