VisualEditor/Roadmap

From MediaWiki.org
Jump to: navigation, search
This is not set in stone, just an outline of our current thinking for the time being.

Our current VisualEditor/Parsoid development priorities (as of 2012-08-21) for the December release are:

  1. Round-tripping (i.e., what you edit is what gets saved, and what you read is what you see when you click 'edit')
  2. Alienation (i.e., if we don't yet support editing of a node type, it instead displays as a block that you can move and remove but not alter, and adjusts the wikitext appropriately on save)
  3. Productionisation (i.e., it doesn't fall over at scale)
    Things above this line are "drop-dead" criteria for release in December 2012.

  4. Getting what we have working perfectly — (paragraphs, headings, pre-formatted paragraphs, OLs, ULs; italics, bold, links)
    Lingering issues with inline nodes and whitespace preservation
  5. API-ing the VE/Parsoid stack (so they can be extended by new developers without them having to learn the whole code base)
  6. Adding support for new node types:
    1. Images (inclusion inline and as thumbnails)
    2. Definition lists
    3. Categories

Forward-look [edit]

SPECULATIVE AND INDICATIVE ONLY -- NOT TO BE TAKEN AS CURRENT OR BINDING DELIVERY TARGETS

VisualEditor timeline: 2012/13 Q1-2 (i.e., July-December 2012)
Work area August September October November December
UI C
O
R
E
  • Yes check.svgLink inspector[1]
  • Znak A-14.svg Generic inspector design[2]
  • Re-code to use new API[3]
  • Context-sensitivity[4]
  • Generic inspector design ctd.
  • Image inspector[5]
  • Initial Category inspector[6]
  • Citation inspector[7]
  • Initial Template inspector[8]
  • Image inspector ctd.
  • Productionisation
E
X
T

No real scope for external input.

No real scope for external input.

  • Table inspector[9]
  • Bespoke {{cite}} inspectors[10]
  • Table inspector ctd.
  • Table inspector ctd.
MediaWiki integration C
O
R
E

  • Simple diffs[11]
  • Simple edit conflicts[12]
  • Simple diffs ctd.
  • Simple edit conflicts ctd.
  • Productionisation
E
X
T

No real scope for external input.

No real scope for external input.

No real scope for external input.

No real scope for external input.

No real scope for external input.

Core
(CE, APIs, etc.)
C
O
R
E
  • Znak A-14.svg Alienation[13]
  • Znak A-14.svg Inline images[14]
  • Znak A-14.svg Proper selection[15]
  • Yes check.svgNative delete[16]
  • Znak A-14.svg Document & implement APIs[17]
  • IME[18]
  • Alienation ctd.
  • Inline images ctd.
  • Proper selection ctd.
  • Document & implement APIs ctd.
  • Port to new APIs and test[19]

Unknown

Unknown

  • Productionisation
E
X
T

No real scope for external input.

No real scope for external input.

No real scope for external input.

No real scope for external input.

No real scope for external input.

Parsoid C
O
R
E
  • JS: Categories, magicwords[22]
  • C++ Port ctd.
  • Implement API[27]
  • Productionisation
  • Productionisation ctd.
E
X
T

No real scope for external input.

No real scope for external input.

No real scope for external input.

No real scope for external input.

No real scope for external input.

Future work [edit]

VisualEditor outline functionality needs: 2013 Q1-2 (i.e., July-December 2012)
Work area 2013
UI C
O
R
E
  • Generic Template inspector[28]
  • Template creation inspector[29]
E
X
T
  • Gallery inspector[30]
  • Others as needed.
MediaWiki integration C
O
R
E
E
X
T
  • Media library integration[34]
  • Video player integration[35]
  • Media inspector to cover video/etc.[36]


Notes [edit]

  1. A more comprehensive link inspector with link target detection, link suggestion, and covering each type of link (new internal, existing internal, interwiki, external).
  2. The overall design concept for Inspectors and how they should operate.
  3. Re-write existing node handlers (lists, paragraphs, headings, bold, italics, links) to use the newly-written APIs ("dogfooding")
  4. ???
  5. A basic image/media inspector for insertion and setting standard items (caption, framing, float type, etc.).
  6. A basic Category inspector to add/change categories and set index sort values.
  7. An inspector for citation elements (note: will not cover the standard citation templates; see below).
  8. A (very) basic Template inspector to invoke simple Templates with no parameters.
  9. An inspector to create and edit tables, including cell merging/spanning, heading and non-heading status, etc.. Hard.
  10. A few basic Template inspectors to invoke simple use cases of the citation templates.
  11. ???
  12. ???
  13. ???
  14. ???
  15. ???
  16. ???
  17. Nodes; Toolbar/UI; Transaction
  18. ???
  19. ???
  20. ???
  21. ???
  22. ???
  23. ???
  24. ???
  25. ???
  26. ???
  27. ???
  28. An inspector to insert/use any Template, automatically detecting possible parameter fields. (Very) Hard.
  29. An inspector to create a Template. (Very very) Hard.
  30. An inspector to use the Gallery functionality.
  31. ???
  32. ???
  33. ???
  34. ???
  35. ???
  36. ???