VisualEditor/status

Last update on: 2012-03-01

2011-05-16
Trevor Parscal and Neil Kandalgaonkar have done exploratory work on the visual editor project. Neil worked with developers of HackPad (a custom version of Etherpad, a real-time collaborative editing software) on a proof of concept of integration between Etherpad and MediaWiki (read more). They're now working on turning it into a MediaWiki extension. Work on the visual editor is also intersecting with the groundwork done on the new parser.

2011-06-02
Trevor Parscal and Neil Kandalgaonkar have done exploratory work on the visual editor project. Neil worked with developers of HackPad (a custom version of real-time collaborative editing software Etherpad) on a proof of concept to integrate Etherpad and MediaWiki (read more). They're now working on turning it into a MediaWiki extension. Trevor continues to work on WikiDom, a storage structure and functionality acting as an intermediate layer between the parser and a visual editor. This work also intersects with the groundwork done on the new parser.

2011-06-30
Trevor Parscal continued to work on the front-end of the visual editor, and specifications for accessing the editing surface via the API. A hybrid rendering approach appears to be the best strategy for the visual editor. Neil Kandalgaonkar continued to work on the middleware, DOM and transactions. Neil also continued to work on a demo to integrate MediaWiki and Etherpad. With Alolita Sharma, they planned their upcoming sprints. Neil and Trevor are posting about their work to the wikitext-l list.

2011-07-25
Trevor Parscal continued to work on the front-end of the visual editor and rich text rendering; he was joined by Inez Korczynski, a developer from Wikia, who are also interested in the visual editor. Neil Kandalgaonkar worked on real-time collaboration, concurrent editing and dived into the inner workings of Etherpad. (Read summary on wikitext-l.)

2011-08-31
Trevor Parscal and Inez Korczynski worked on a transaction-based model for the visual editor, where the document is built as a series of events (instead of saving it entirely at every change), which makes it easier to undo actions. Neil Kandalgaonkar continued to work on real-time collaboration and is close to presenting a demo of Etherpad working inside a MediaWiki edit window. Ian Baker investigated and started to work on a chat system to be integrated to the concurrent editing interface, for collaboration and live help. More details on the wikitext-l mailing list.

2011-09-30
Trevor Parscal expanded the software design documentation. He also refactored some of the data structures to follow a model/view controller pattern and support document-level transactions. He wrote tests for the new structure, and got it to render paragraphs and lists; he's now working on rendering tables.

2011-10-31
Trevor Parscal worked on a new model tree (and the conversion from the linear model) and updated the software design documentation. Inez Korczynski worked on front-end functionality: dialogs, selecting text, mouse actions, scrolling, keyboard shortcuts, etc. Roan Kattouw focused on algorithms that insert ranges of data into a document, and Neil Kandalgaonkar on the removal of data. On the parser side, a basic parser using PEG is in place, which produces an intermediate JSON object tree; Brion Vibber is still working on markup support (mixed HTML and Wikitext). Gabriel Wicke joined the team and started to work on the PEG parser (read more).

2011-11-30
Trevor Parscal fixed issues blocking the synchronization of structural edits to the user interface, refactored and cleaned up the code, and mapped out tasks and features to be supported. He also finished the document transaction functionality and made progress on an undo/redo system. Roan Kattouw added tests, rewrote some code to make the tests pass, and fixed a number of bugs and issues, notably in Internet Explorer. Inez Korczynski continued to work on content insertion, deletion and selection and fixed numerous bugs. Gabriel Wicke extended the PEG parser for robust larger-scale parsing. He converted the PEG parser into a combined wiki and HTML tokenizer that feeds to a HTML5 DOM tree builder. He implemented several wikitext features (lists, italics, bold) as token stream transformations. 139 of about 660 parser tests are now passing.

2011-12-13
<section begin=2011-12-13/>The first public developer prototype of the visual editor sandbox was deployed to MediaWiki.org for public feedback and testing. It can be accessed via the visual editor sandbox special page. Full announcement in the Wikimedia blog.<section end=2011-12-13/>

2011-12-31
<section begin=2011-12-31/>The team deployed a developer prototype of the visual editor sandbox to mediawiki.org for public feedback and testing. Trevor Parscal fixed bugs and refactored code. Inez Korczynski worked on the toolbar (text styles), the undo/redo stack, and lists (creating, deleting, and changing indentation). Gabriel Wicke worked on the parser test runner and the parser pipeline, including [//lists.wikimedia.org/pipermail/wikitext-l/2011-December/000494.html the tokenizer and its grammar] and template expansions. Neil Kandalgaonkar worked on the undo/redo feature and did a lot of refactoring.<section end=2011-12-31/>

2012-01-31
<section begin=2012-01-31/>January was a bit slower on the visual editor front, as parts of the team took some well-deserved vacation after the successful prototype launch in December. During the SF Hackathon, a lot of issues were fleshed out. Plans for the second phase of the editor project were formulated. Inez Korczynski investigated a possible use of  to help with input methods and text selections on mobile devices. Gabriel Wicke extended the parser with the ability to fetch and expand templates in a parallel and asynchronous fashion. The parser now supports most parts of the English Wikipedia Main Page.<section end=2012-01-31/>

2012-02-29
<section begin=2012-02-29/>Trevor Parscal did research on cursor interaction and selection rendering for RTL (right-to-left) and support for line breaks in PRE elements. Gabriel Wicke sped up tokenizer by rewriting key production and found a way to treat extensions generically in the tokenizer. Rob Moen committed a working Editable Surface IME prototype (bidirectional text not fully supported). Audrey Tang is working on the testing process.<section end=2012-02-29/>