Hi all,

As presented last Saturday at the Hack-A-Ton, I've committed a new version of 
the InlineEditor extension. [1] This is an implementation of the sentence-level 
editing demo posted a few months ago.

Basically what this new version does is building a tree structure from all the 
markings. This has the advantage of being able to render only part of the tree 
when doing a preview, which has a significant performance advantage. However, 
there's also the problem of dependencies throughout the page, the most notable 
of which is the Cite extension. Right now this is resolved by just rendering 
the entire page whenever a dependency is encountered. Extensions are 
responsible for telling this by using a hook, right now there's only built-in 
support for references (Cite). A more scalable solution would be to enable 
extensions to rerender only the dependency by using some stored data acquired 
on the initial parse, and data from the subsequent partial parse. This will be 
one of the goals for the next version.

Another advantage of using this tree structure is that now nested markings are 
possible. Now there are basically two (or perhaps more) possibilities of 
defining editing options. One is to differentiate based on functionality, like 
in the initial demo: Text, Media, Templates, etc. Another possibility is to 
differentiate based on block size (which uses nested markings): Sentences, 
Paragraphs, Sections, Full Text. Personally I think the second option will be 
better if the goal of the interface is to educate new users to become gradually 
more accustomed to wikitext.

Anyway, further research should investigate what's the best interface. I'll be 
doing some usability research myself in the next few months, and the Wikimedia 
Foundation will be doing further usability research next year.

If you like to play around with the editor, these are the lines you can add to 
LocalSettings.php to get started:
require_once( "$IP/extensions/InlineEditor/InlineEditorFunctional.php" ); // 
functional approach
*or*
require_once( "$IP/extensions/InlineEditor/InlineEditorBlocks.php" ); // block 
size approach

Feedback is welcome! Thanks for your time.

Regards,
Jan Paul

[1] http://www.mediawiki.org/wiki/Special:Code/MediaWiki/75344


_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to