<div class="ace-line" id="magicdomid318"><span class="author-g-6wfd4kxns0z122zb7rnq">Etherpad'ed notes from today's editor/parser status meeting:<br><br><br>2011-10-26</span></div><div class="ace-line" id="magicdomid319">
<br></div><div class="ace-line" id="magicdomid216"><span class="author-g-6wfd4kxns0z122zb7rnq">Attending:</span></div><div class="ace-line" id="magicdomid231"><span class="author-g-6wfd4kxns0z122zb7rnq">* Visual Editor team</span></div>
<div class="ace-line" id="magicdomid249"><span class="author-g-6wfd4kxns0z122zb7rnq">** Trevor</span></div><div class="ace-line" id="magicdomid257"><span class="author-g-6wfd4kxns0z122zb7rnq">** Inez</span></div><div class="ace-line" id="magicdomid269">
<span class="author-g-6wfd4kxns0z122zb7rnq">* Parser team</span></div><div class="ace-line" id="magicdomid277"><span class="author-g-6wfd4kxns0z122zb7rnq">** Brion</span></div><div class="ace-line" id="magicdomid324"><span class="author-g-6wfd4kxns0z122zb7rnq">** Gabriel Wicke (skype)</span></div>
<div class="ace-line" id="magicdomid337"><span class="author-g-6wfd4kxns0z122zb7rnq">* Integration</span></div><div class="ace-line" id="magicdomid345"><span class="author-g-6wfd4kxns0z122zb7rnq">** Neil</span></div><div class="ace-line" id="magicdomid367">
<span class="author-g-6wfd4kxns0z122zb7rnq">* Managy people</span></div><div class="ace-line" id="magicdomid376"><span class="author-g-6wfd4kxns0z122zb7rnq">** Erik</span></div><div class="ace-line" id="magicdomid386"><span class="author-g-6wfd4kxns0z122zb7rnq">** Alolita</span></div>
<div class="ace-line" id="magicdomid388"><br></div><div class="ace-line" id="magicdomid404"><span class="author-g-6wfd4kxns0z122zb7rnq">== Status check ==</span></div><div class="ace-line" id="magicdomid405"><br></div><div class="" id="magicdomid2">
<span class="author-g-t30xlxsekgpjwkp4">How are we going to</span></div><div class="" id="magicdomid3"><br></div><div class="" id="magicdomid4"><ul class="list-bullet1"><li><span class="author-g-t30xlxsekgpjwkp4">Write a parser</span></li>
</ul></div><div class="" id="magicdomid5"><ul class="list-bullet1"><li><span class="author-g-t30xlxsekgpjwkp4">Integrate it with the visual editor</span></li></ul></div><div class="" id="magicdomid6"><ul class="list-bullet1">
<li><span class="author-g-t30xlxsekgpjwkp4">Deploy the visual editor</span></li></ul></div><div class="" id="magicdomid7"><br></div><div class="" id="magicdomid8"><span class="author-g-t30xlxsekgpjwkp4">Parser Status</span></div>
<div class="" id="magicdomid9"><ul class="list-bullet1"><li><span class="author-g-t30xlxsekgpjwkp4">Basic parser in place</span></li></ul></div><div class="" id="magicdomid10"><ul class="list-bullet2"><li><span class="author-g-t30xlxsekgpjwkp4">Produces intermediate JSON object tree</span></li>
</ul></div><div class="" id="magicdomid11"><ul class="list-bullet3"><li><span class="author-g-t30xlxsekgpjwkp4">Doesn't yet produce Wikidom as it's been defined</span></li></ul></div><div class="" id="magicdomid12">
<ul class="list-bullet3"><li><span class="author-g-t30xlxsekgpjwkp4">Considering if Wikidom should be changed</span></li></ul></div><div class="" id="magicdomid13"><ul class="list-bullet2"><li><span class="author-g-t30xlxsekgpjwkp4">Still working on markup support (mixed HTML and Wikitext)</span></li>
</ul></div><div class="" id="magicdomid14"><ul class="list-bullet2"><li><span class="author-g-t30xlxsekgpjwkp4">Written in JavaScript and is currently in the "ParserPlayground"</span></li></ul></div><div class="" id="magicdomid15">
<ul class="list-bullet2"><li><span class="author-g-t30xlxsekgpjwkp4">Using PEG for part of the parsing process (primarily tokenizing)</span></li></ul></div><div class="" id="magicdomid16"><br></div><div class="" id="magicdomid17">
<span class="author-g-t30xlxsekgpjwkp4">VisualEditor Goals</span></div><div class="" id="magicdomid18"><ul class="list-bullet1"><li><span class="author-g-t30xlxsekgpjwkp4">Get something working in the wiki environment so people can play with it</span></li>
</ul></div><div class="" id="magicdomid19"><ul class="list-bullet1"><li><span class="author-g-t30xlxsekgpjwkp4">Ideas for places to integrate first</span></li></ul></div><div class="" id="magicdomid20"><ul class="list-bullet2">
<li><span class="author-g-t30xlxsekgpjwkp4">New page creation</span><span class="author-g-9y8egg3nqrsxvz122z4f"> - Potential Use Case</span></li></ul></div><div class="" id="magicdomid21"><ul class="list-bullet2"><li><span class="author-g-6wfd4kxns0z122zb7rnq url"><a href="http://www.mediawiki.org/wiki/Visual_editor/Task_management">http://www.mediawiki.org/wiki/Visual_editor/Task_management</a></span></li>
</ul></div><div class="" id="magicdomid22"><br></div><div class="ace-line" id="magicdomid181"><span class="author-g-6wfd4kxns0z122zb7rnq">== Decemberish test deployment? ==</span></div><div class="" id="magicdomid24"><br>
</div><div class="ace-line" id="magicdomid409"><span class="author-g-6wfd4kxns0z122zb7rnq">Distinct stages that could be deployed on sites for testing:</span></div><div class="ace-line" id="magicdomid113"><span class="author-g-6wfd4kxns0z122zb7rnq">* Visual editor in the wiki -> lets you edit but nothing else</span></div>
<div class="ace-line" id="magicdomid161"><span class="author-g-6wfd4kxns0z122zb7rnq">** ''too early to advertise for anything but interaction testing''</span></div><div class="" id="magicdomid27"><span class="author-g-6wfd4kxns0z122zb7rnq">** just need to actually plug it in</span></div>
<div class="ace-line" id="magicdomid127"><span class="author-g-6wfd4kxns0z122zb7rnq">* Visual editor in the wiki and lets you save</span></div><div class="ace-line" id="magicdomid135"><span class="author-g-6wfd4kxns0z122zb7rnq">** ''_could_ start to use as opt-in test for new pages''</span></div>
<div class="" id="magicdomid29"><span class="author-g-6wfd4kxns0z122zb7rnq">** add API module to save, should be easy-ish</span></div><div class="ace-line" id="magicdomid136"><span class="author-g-6wfd4kxns0z122zb7rnq">* Visual editor in the wiki and lets you load and save.</span></div>
<div class="ace-line" id="magicdomid145"><span class="author-g-6wfd4kxns0z122zb7rnq">** ''this would be ideal place to start advertising for testers''</span></div><div class="" id="magicdomid31"><span class="author-g-6wfd4kxns0z122zb7rnq">** combining the parser and reconciling the formats</span></div>
<div class="" id="magicdomid32"><br></div><div class="ace-line" id="magicdomid412"><span class="author-g-6wfd4kxns0z122zb7rnq">== Visual Editor side ==</span></div><div class="" id="magicdomid34"><br></div><div class="" id="magicdomid35">
<span class="author-g-6wfd4kxns0z122zb7rnq">VE is in midst of core redo to make undo etc working (internal representation changes)-- still stabilizing!</span></div><div class="" id="magicdomid36"><br></div><div class="" id="magicdomid37">
<span class="author-g-6wfd4kxns0z122zb7rnq">VE frontend todos for page saving:</span></div><div class="" id="magicdomid38"><span class="author-g-6wfd4kxns0z122zb7rnq">* reintegrate serializers (in progress)</span></div><div class="" id="magicdomid39">
<span class="author-g-6wfd4kxns0z122zb7rnq">* undo/redo/copy/paste working (mostly there)</span></div><div class="ace-line" id="magicdomid187"><span class="author-g-6wfd4kxns0z122zb7rnq b"><b>* '''Trevor and Inez are already working on this, but it needs to be finished before we can integrate saving.'''</b></span></div>
<div class="" id="magicdomid41"><br></div><div class="" id="magicdomid42"><br></div><div class="" id="magicdomid43"><span class="author-g-6wfd4kxns0z122zb7rnq">Parser/VE integration todos (for page loading):</span></div><div class="" id="magicdomid44">
<span class="author-g-6wfd4kxns0z122zb7rnq">* parser & wikidom specs need to be resynchronized</span></div><div class="" id="magicdomid45"><span class="author-g-6wfd4kxns0z122zb7rnq">** possibly needs a translator step</span></div>
<div class="" id="magicdomid46"><span class="author-g-6wfd4kxns0z122zb7rnq">* support for more structures (lists etc)</span></div><div class="ace-line" id="magicdomid193"><span class="author-g-6wfd4kxns0z122zb7rnq b"><b>* '''This is big work and needs a lot of coordination between VE & Parser groups!'''</b></span></div>
<div class="" id="magicdomid48"><span class="author-g-6wfd4kxns0z122zb7rnq">** brion & gabriel: can start working with their existing spec -- let's at least get that working</span></div><div class="" id="magicdomid49">
<span class="author-g-6wfd4kxns0z122zb7rnq">*** then we'll need to start figuring out if we need to do major changes based on issues</span></div><div class="" id="magicdomid50"><span class="author-g-6wfd4kxns0z122zb7rnq">*** parser & VE may need to evolve together for now!</span></div>
<div class="" id="magicdomid51"><br></div><div class="" id="magicdomid52"><span class="author-g-6wfd4kxns0z122zb7rnq">Lots more front-end work needed in VE ecosystem; we expect to bring on another hire in that area.</span></div>
<div class="" id="magicdomid53"><br></div><div class="" id="magicdomid54"><span class="author-g-6wfd4kxns0z122zb7rnq">"WikiDom will be the fence between these two neighbors [VE & Parser groups]"</span></div>
<div class="" id="magicdomid55"><br></div><div class="" id="magicdomid56"><span class="author-g-6wfd4kxns0z122zb7rnq">== Parser side ==</span></div><div class="" id="magicdomid57"><br></div><div class="" id="magicdomid58">
<span class="author-g-6wfd4kxns0z122zb7rnq b"><b>Immediate parser work:</b></span></div><div class="" id="magicdomid59"><span class="author-g-6wfd4kxns0z122zb7rnq">* get it producing output compatible with VE's current wikidom input</span></div>
<div class="" id="magicdomid60"><span class="author-g-6wfd4kxns0z122zb7rnq">** we do expect to have to evolve this over time! but let's get it together with the VE first</span></div><div class="" id="magicdomid61"><span class="author-g-6wfd4kxns0z122zb7rnq">* make sure there's a clean JS API for the parser so the VE can call it</span></div>
<div class="" id="magicdomid62"><br></div><div class="" id="magicdomid63"><span class="author-g-6wfd4kxns0z122zb7rnq b"><b>Next stages parser work:</b></span></div><div class="" id="magicdomid64"><span class="author-g-6wfd4kxns0z122zb7rnq">* start making sure tables, templates are all working as expected (fixup stages?)</span></div>
<div class="" id="magicdomid65"><span class="author-g-jhtuk19ip5d6yez122z0">** at least properly nested templates..</span></div><div class="" id="magicdomid66"><span class="author-g-6wfd4kxns0z122zb7rnq">* iterate as necessary</span></div>
<div class="" id="magicdomid67"><span class="author-g-6wfd4kxns0z122zb7rnq">* make sure auto tests are running</span></div><div class="" id="magicdomid68"><span class="author-g-6wfd4kxns0z122zb7rnq">** round-trip tests on wikipedia corpus already available</span></div>
<div class="" id="magicdomid69"><span class="author-g-6wfd4kxns0z122zb7rnq">** need to test HTML rendering against MW's current internal parser</span></div><div class="" id="magicdomid70"><br></div><div class="" id="magicdomid71">
<span class="author-g-6wfd4kxns0z122zb7rnq b"><b>Later stages parser work: (after December)</b></span></div><div class="" id="magicdomid72"><span class="author-g-6wfd4kxns0z122zb7rnq">* depending on what we've seen from auto test...</span></div>
<div class="" id="magicdomid73"><span class="author-g-6wfd4kxns0z122zb7rnq">* ... redoing the PEG?</span></div><div class="" id="magicdomid74"><span class="author-g-6wfd4kxns0z122zb7rnq">* ... redoing the wikidom?</span></div>
<div class="" id="magicdomid75"><span class="author-g-6wfd4kxns0z122zb7rnq">* ... redoing how/when templates are expanded?</span></div><div class="" id="magicdomid76"><span class="author-g-6wfd4kxns0z122zb7rnq">* make sure all structures really supported!</span></div>
<div class="" id="magicdomid77"><span class="author-g-jhtuk19ip5d6yez122z0">* add proper fix-ups similar to what tidy does right now</span></div><div class="" id="magicdomid78"><br></div><div class="" id="magicdomid79"><span class="author-g-6wfd4kxns0z122zb7rnq">== Upcoming work ==</span></div>
<div class="" id="magicdomid80"><br></div><div class="" id="magicdomid81"><span class="author-g-9y8egg3nqrsxvz122z4f">* Mediawiki extension for Visual Editor: Architecture is to be driven by Trevor; Integration w Parser</span></div>
<div class="" id="magicdomid82"><span class="author-g-9y8egg3nqrsxvz122z4f">* RL2 support</span></div><div class="" id="magicdomid83"><span class="author-g-9y8egg3nqrsxvz122z4f">* Internationalization support</span></div>
<div class="" id="magicdomid84"><br></div><div class="" id="magicdomid85"><span class="author-g-9y8egg3nqrsxvz122z4f">* Using underscore.js for js based parser functionality in the same extension as VEd</span></div><div class="" id="magicdomid86">
<span class="author-g-6wfd4kxns0z122zb7rnq">** replace jQuery bits like $.each; underscore should be cleaner and is easier to use in node for batch tests</span></div><div class="" id="magicdomid87"><span class="author-g-9y8egg3nqrsxvz122z4f">* Unknown markup indicator</span></div>
<div class="" id="magicdomid88"><span class="author-g-6wfd4kxns0z122zb7rnq">** at least black-box markers for extension hooks and such</span></div><div class="" id="magicdomid89"><br></div><div class="" id="magicdomid90">
<span class="author-g-6wfd4kxns0z122zb7rnq">Milestones!!!!!!!</span></div><div class="" id="magicdomid91"><span class="author-g-6wfd4kxns0z122zb7rnq">* Trevor will check up with Howie</span></div><div class="" id="magicdomid92">
<span class="author-g-6wfd4kxns0z122zb7rnq">** various VE stuff on its way</span></div><div class="" id="magicdomid93"><span class="author-g-6wfd4kxns0z122zb7rnq">* getting VE and parser into a common extension (separate code modules loaded by it)</span></div>
<div class="" id="magicdomid94"><span class="author-g-6wfd4kxns0z122zb7rnq">* parser integration may not make it by December, but we'll see what's ready by then</span></div><div class="" id="magicdomid95"><br></div>
<div class="" id="magicdomid96"><br></div>