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