VisualEditor/Todo list


Bold text = Today's focus


  • Selection
    • Placing cursor in appropriate locations (Inez)
      • By mouse
      • By cursor keys (home, end, tab, page up, page down)
    • Drawing range
      • By mouse
      • Shift + cursor keys
    • Canceling range
      • By mouse click
      • By cursor keypress
  • Inserting text
    • Typing (Inez)
    • IME (Inez)
    • Autocorrect (Inez)
    • Paste (plain text) (Christian)
    • White/Blacklist of keys (Check Alt-123 pattern) (Christian) - demos/playground/whitelist.html is a working demo showing how the model can make changes to the content prior to new content being added by a user when there is a selection range.
  • Removing text
    • With range
      • Type new chars (Inez) - This is the whitelist stuff
      • Backspace/delete (Christian)
      • Cut (Christian)
      • Paste (Christian) - User can draw a range and paste. The range should be removed before new content is pasted.
    • With cursor
      • backspace/delete (Christian)
  • Toolbar & Inspectors (Rob)
    • Annotation buttons
    • Formatting drop-down (wrapping) (Rob)
    • Link Inspector (Rob)
      • Investigate dual selection with iframe (mobile?) (Christian) - Inspectors in iFrames will maintain original selection on text. iPhone has its own context menu for Cut/Copy/Paste when a range is drawn, so we'll want to figure out a different approach for toolbar/inspector for mobile anyway. Mobile toolbar/inspector is not a June item. The decision is to render inspectors in iFrames.
    • Annotation Inspector (Rob)
    • Maintain original keyboard shortcuts (Rob)
  • Lists (ordered and unordered)
    • Switch between ordered and unordered (Rob)
    • Indent (Rob)
    • Outdent (Rob)
  • Undo/Redo (Use interval to group transactions) (Christian)


  • Converter (Trevor)
    • DOM -> Data (Trevor)
    • Data -> DOM (Trevor)
    • Unit tests (Trevor)
  • Transaction Processor
    • Rebuilding (Trevor, Roan)
    • Splitting (Trevor, Roan)
      • Functionality (Roan)
      • Unit tests (Trevor)
    • Merging (on deletion)
      • Functionality (Roan)
      • Unit tests (Trevor)
  • Transaction Builders
    • Inserting new content (Roan)
      • Unit tests (Trevor)
    • Removing content (Roan)
      • Unit tests (Trevor)
    • Wrap (Roan)
  • Remove offset map (Roan)
    • Undo/redo (Christian)
  • Porting UI Document dependencies. (Rob)
    • Unit tests (Rob)
      • getAnnotationBoundaries (annotation button) - deprecated by getAnnotatedRangeFromOffset
      • getIndexOfAnnotation (annotation button) - deprecated by offsetContainsAnnotation (now returns boolean)
      • getMatchingAnnotations (clear button, link inspector) refactored (now returns hashmap of annotations)
      • traverseLeafNodes (toolbar) - Maybe deprecated by select nodes.


  • HTML5 DOM to Wikitext (Gabriel)
  • HTTP server for the parser (Gabriel)


  • Integrated only on X namespace (Rob)
  • Disable source editing in namespace, including API (except for staff) (Rob)
    • Source mode tab for admins (Rob)
  • Switch view mode to in-place edit mode (spinner) (Rob)
  • Load assets (Rob)
  • ve API for round tripping (Rob)
    • Save (Rob)
    • Load (Rob)
  • Design (Trevor)
    • Help
    • Save button
    • Cancel button
    • Edit summary (with legal text)
    • Minor edit
  • Save dialog (Rob)
  • Switch from in-place edit to view mode (Rob)
  • Save experience (Rob)
    • spinner
    • success message
  • Feedback link (Rob)
  • Creating pages doesn't work (Roan)
  • Locking the target namespace so e.g. users cannot move pages into or out of it. (Roan)
  • Page title is carried over to editor even if it's something like "Difference between X and Y" (Roan)


  • Release week of June 18-22
  • Memorial Day May 28
  • Roan: May 22nd & 23rd traveling, 24th, 25th, 29th working from Europe, 30th traveling, 31st-June 3rd Berlin Hackathon, 4th traveling, 5th back in SF office
  • Christian: May 21st HTML5 dev conf
  • Inez: May 21st HTML5 dev conf
  • Gabriel: May 31st-June 3rd Berlin Hackathon, may be in SF as soon as July 1st
  • James: In SF June 5th


Task Modules Owner ETA Status
Linear Model Roan 5/14 Stable, some additional functionality needs porting
Transaction Builders Roan 5/11 Missing structural change functionality
Transaction Processor Roan 5/10 Missing structural change functionality
Document Synchronizer Roan 5/10 Missing structural change functionality
HTMLConverter: HTML DOM <-> linear model round-tripping Christian 5/11 Basic functionality, needs tests and fixes
Node Trees, ve.ce Trevor 5/11 Stable, may need a few more nodes for completeness
Surface Model Rob, Christian, Inez 5/14 Basic functionality, missing undo/redo and other features
Surface View ve.ce Inez 5/14 Rendering, needs observation fixes and connections to surface model
Toolbar ve.ui Rob 5/16 Rendering, needs connections to surface model
Link inspector ve.ui Rob 5/16 Not started, needs to be redesigned and improved
In-place Editing Integration editor Rob 5/16 Not started
lazy expansion and frame reference bug refactoring (performance, correctness) Parsoid GWicke 5/11 Done
Parsoid/Todo#Parser_web_service Parsoid GWicke 5/23 Mostly done,
Parsoid/Todo#Wikitext_serializer Parsoid GWicke 5/23 Basics done, needs tweaking
completing rt info and rt testing Parsoid GWicke 5/30 In progress, but mostly done for June release

Monday May 7[edit]

  • Roan: selectNodes done, now working on TransactionProcessor.replace
  • Trevor: writing tests for structural replacement. Need to improve selectNodes and rebuildNodes tests but can do that on Wednesday when Roan is in RL2 land