Go to file
Roan Kattouw 74b8807df5 Resolve rendered URLs according to the provided <base>
This is done by using the computed property value rather than the
literal attribute value when rendering href and src attributes.
Helpfully, this provides perfect URL resolution natively in the browser,
which means the document's <base> is respected and all that good stuff.

For GeneratedContentNodes, we also need to find all DOM elements inside
the rendered DOM that have href or src attributes and resolve those.
This is done in the new getRenderedDomElements() function, which the
existing cleanup steps (remove <link>/<meta>/<style>, clone for
correct document) were moved into.

In order to make sure that the computed values are always computed
correctly, we need to make sure that in cases where HTML strings
in data-mw are parsed, they're parsed in the context of the correct
document so the correct <base> is applied.

We still need to solve this problem for models that actually store and
edit an href or src as an attribute. I'll post more about that on
bug 48915.

Bug: 48915
Change-Id: Iaccb9e3fc05cd151a0f5e632c8d3bd3568735309
2013-10-28 15:16:05 +00:00
.docs Add bin/ directory with updateStaticLoaders and generateDocs 2013-10-22 23:51:51 +02:00
bin Add bin/ directory with updateStaticLoaders and generateDocs 2013-10-22 23:51:51 +02:00
demos Merge "Split ext.visualEditor.experimental into specific modules" 2013-10-24 14:05:33 +00:00
maintenance Merge "Split ext.visualEditor.experimental into specific modules" 2013-10-24 14:05:33 +00:00
modules Resolve rendered URLs according to the provided <base> 2013-10-28 15:16:05 +00:00
.csslintrc Add .csslintrc file and fix remaining warnings 2013-06-05 11:07:00 +00:00
.gitignore Implement Grunt support (grunt jshint,csslint,qunit,watch) 2013-06-05 11:10:23 +00:00
.gitreview Set defaultrebase=0 2012-06-20 16:27:40 -07:00
.jshintignore Use jsdifflib for QUnit diff 2013-10-23 20:31:17 +00:00
.jshintrc oojs: Integrate with OOJS v1.0.0 2013-06-06 17:29:55 +02:00
ApiVisualEditor.php Change X-Parsoid-Performance header value indicating cached response 2013-10-06 23:30:27 +00:00
ApiVisualEditorEdit.php Set 'notminor' if minor edit box not checked 2013-07-24 15:07:05 +01:00
AUTHORS.txt Add Moriel Schottlender to AUTHORS.txt and authors string 2013-10-23 11:24:03 -07:00
CONTRIBUTING.md Merge "Updates to support jsduck 5.x" 2013-09-24 15:37:56 +00:00
Gruntfile.js grunt: Also delete QUnit temp files when test fails 2013-06-17 11:27:52 -07:00
LICENSE.txt Bump copyright year range to 2013 in the licence file 2013-03-18 09:55:57 -07:00
logo-experimental.svg Added SVG logos in new style, rm'd old pngs 2013-10-22 18:20:32 +01:00
logo.svg Added SVG logos in new style, rm'd old pngs 2013-10-22 18:20:32 +01:00
package.json Updates to README.md and CODING.md 2013-09-17 19:09:25 -04:00
README.md Updates to README.md and CODING.md 2013-09-17 19:09:25 -04:00
VisualEditor.hooks.php Use jsdifflib for QUnit diff 2013-10-23 20:31:17 +00:00
VisualEditor.i18n.php Localisation updates from http://translatewiki.net. 2013-10-27 20:08:20 +00:00
VisualEditor.php Merge "Split ext.visualEditor.experimental into specific modules" 2013-10-24 14:05:33 +00:00
VisualEditorDataModule.php Clean up VisualEditorDataModule and document ve.version 2013-09-18 03:40:00 +02: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 CODING.md. Patch submissions are reviewed and managed with Gerrit. There is also API documentation available for the VisualEditor.