Go to file
Mahmoud Al-Qudsi a9278f654b Fix exception editing cross-wiki redirects
As described in T326169, when editing a (manually created) cross-wiki redirect,
VisualEditor will throw a null dereference exception causing it to fail to load
in the browser (looking like it is just taking forever to load).

This patch prevents the exception from occurring by not attempting to write to
the null object.

Bug: T326169
Change-Id: I50fa803c7b4ce65dac1fe345431d8b8f9d0b3d61
2024-08-28 13:27:09 -05:00
.phan Use namespaced classes 2024-06-10 22:36:31 +02:00
bin updateSubmodule: Handle modified i18n keys 2024-06-20 14:47:07 +01:00
build build: Updating eslint-config-wikimedia to 0.28.0 2024-06-04 03:40:00 +00:00
editcheck Edit check: center the text in the proofreading toolbar 2024-08-22 01:23:27 -05:00
i18n Localisation updates from https://translatewiki.net. 2024-08-23 09:47:37 +02:00
images ve.collab: Create BetaFeature 2024-03-07 00:45:39 +08:00
includes Replace deprecated PermissionManager::getPermissionErrors() and friends 2024-08-09 13:35:29 +00:00
lib Update VE core submodule to master (be8847993) 2024-08-06 23:48:17 +02:00
modules Fix exception editing cross-wiki redirects 2024-08-28 13:27:09 -05:00
screenshots
tests Use namespaced classes 2024-06-10 22:36:31 +02: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
.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 build: Updating mediawiki/mediawiki-codesniffer to 44.0.0 2024-08-10 16:16:11 +00:00
CONTRIBUTING.md doc: Bump copyright year for 2020 2020-01-08 09:13:24 -08:00
extension.json build: Update MediaWiki requirement to 1.43 2024-08-22 18:48:21 -04:00
Gruntfile.js build: Updating eslint-config-wikimedia to 0.28.0 2024-06-04 03:40:00 +00:00
jsdoc.json Update jsdoc-wmf-theme to 1.1.0 2024-06-26 12:07:04 +01:00
LICENSE.txt doc: Bump copyright year for 2020 2020-01-08 09:13:24 -08:00
package-lock.json build: Updating fast-xml-parser to 4.4.1 2024-07-30 04:34:16 +00:00
package.json Update jsdoc-wmf-theme to 1.1.0 2024-06-26 12:07:04 +01: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