Go to file
Zoë 3c6f0a918c Change confirmation behaviour when abandoning template edits
Previously, it was possible to close a dialog with active edits by
pressing the "<" button or pressing escape. A change was made to confirm
the user's intent before abandoning their changes, see Ia8935b5b1acb

This patch fixes a bug where the user's intent is always confirmed while
editing a template, even if the user has made no changes. This was
because for technical reasons we trimmed whitespace before making a
comparison with the new template case, but that caused the comparison
with the edit case to always fail because existing templates are padded
with whitespace.

This could have been solved by moving the trim operation into the new
template flow. This patch would still have been necessary to prevent
a bug if the default value had trimmable whitespace. I have opted to
keep the whitespace behaviour for edits for consistency.

Bug: T334513
Change-Id: I7b3370c86df67c36fc63a1f1d0e7004a098a1950
2024-05-28 15:49:19 +01:00
.phan ve.collab: Move BetaFeature into its own file 2024-03-06 14:50:14 -06:00
bin updateSubmodule: Show removed files/i18n keys as well as added 2023-12-08 16:51:11 +00:00
build checkModules.js: Warn about unused ignore paths, and remove currently unused ones 2024-05-09 11:16:39 +01:00
editcheck Localisation updates from https://translatewiki.net. 2024-05-20 09:26:33 +02:00
i18n Localisation updates from https://translatewiki.net. 2024-05-20 09:26:33 +02:00
images ve.collab: Create BetaFeature 2024-03-07 00:45:39 +08:00
includes Load diff modules in onTextSlotDiffRendererTablePrefix as well 2024-04-05 13:12:48 +01:00
lib Update VE core submodule to master (27296e0e3) 2024-05-16 18:34:25 +01:00
modules Change confirmation behaviour when abandoning template edits 2024-05-28 15:49:19 +01:00
screenshots
tests Remove unused reference to ParsoidOutputAccess 2024-05-17 12:44:36 -04:00
.eslintignore Implement add a reference edit check 2023-08-16 17:19:28 +01:00
.eslintrc.json Add basic end-to-end tests for action=visualeditor 2022-09-28 18:28:05 +02:00
.gitignore .gitignore: Add .vscode directory to .gitignore 2023-05-16 12:50:51 +01:00
.gitmodules
.gitreview
.jsdoc.json Update VE core submodule to master (27296e0e3) 2024-05-16 18:34:25 +01:00
.mailmap Update Legoktm's mailmap entry 2021-04-11 19:18:33 -07:00
.phpcs.xml ApiVisualEditor: Remove $wgTitle hack, set page for {{PAGENAME}} when needed 2022-02-28 23:43:54 +00:00
.stylelintrc.json build: Update stylelint-config-wikimedia 2023-08-21 16:06:40 +01:00
AUTHORS.txt Move verbose copyright message to AUTHORS.txt 2023-12-01 16:07:39 +00:00
composer.json Update minus-x to 1.1.3 2024-05-04 18:38:03 +02:00
CONTRIBUTING.md doc: Bump copyright year for 2020 2020-01-08 09:13:24 -08:00
extension.json Confirm abort if saving would make a change to the underlying document 2024-04-30 16:20:45 +01:00
Gruntfile.js docs: Replace JSDuck with JSDoc (and pull-through VE with said change) 2024-04-29 16:16:50 +01:00
LICENSE.txt doc: Bump copyright year for 2020 2020-01-08 09:13:24 -08:00
package-lock.json build: Updating grunt-banana-checker to 0.13.0 2024-05-17 03:15:17 +00:00
package.json build: Updating grunt-banana-checker to 0.13.0 2024-05-17 03:15:17 +00:00
README.md Readme: Mark links, as JSDoc doesn't autolink 2024-04-30 13:29:26 +01:00
VisualEditor.i18n.alias.php doc: Bump copyright year for 2020 2020-01-08 09:13:24 -08:00

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 VisualEditor.

Terminology

  • CE: ContentEditable
  • DM: Data model
  • Invocation: Here the act of calling a template from a page, visible as e.g. {{reflist}} in the wikitext.
  • MW: MediaWiki
  • Page: See https://www.mediawiki.org/wiki/OOUI/Layouts/Booklets_and_Pages
  • Parameter: A template parameter. Can be known (i.e. documented via TemplateData) or unknown.
  • Part: A template-level entity in a transclusion, i.e. either a template, template placeholder, or wikitext snippet.
  • SA: Standalone
  • Template: See https://www.mediawiki.org/wiki/Help:Templates
  • Transclusion: A sequence of one or more template invocations, possibly mixed with raw wikitext snippets.
  • UI: User interface
  • VE: VisualEditor
  • WT: Wikitext