I'm generally in favor of this plan. I haven't looked over the specific code experiments yet but the plan sounds solid. A few notes:
* over time we'll want to do things like migrate File: pages from 'plain wikitext that happens to have an associated file' to 'structured data about a file'. This will be magnificent.
* I wouldn't overmuch emphasize things like "oh you could have pages in markdown or tex!", though it does sound neat and all. :)
* we need to make sure that import/export round-trips things consistently, including for "non-wikitext" stuff. Either that means making import/export content-aware, or shipping the serialized form through the export XML?
As for timing; Daniel's hoping for something in the neighborhood of an August deployment. I think if we keep things minimal that should be feasible; it's somewhat similar to the migration of Image stuff with MediaHandler classes.
I'm a bit uncertain about the idea of 'multipart' pages, though attached data YES YES in some clean way is needed.
-- brion
On Mon, Mar 26, 2012 at 7:45 AM, Daniel Kinzler daniel@brightbyte.dewrote:
Hi all. I have a bold proposal (read: evil plan).
To put it briefly: I want to remove the assumption that MediaWiki pages contain always wikitext. Instead, I propose a pluggable handler system for different types of content, similar to what we have for file uploads. So, I propose to associate a "content model" identifier with each page, and have handlers for each model that provide serialization, rendering, an editor, etc.
The background is that the Wikidata project needs a way to store structured data (JSON) on wiki pages instead of wikitext. Having a pluggable system would solve that problem along with several others, like doing away with the special cases for JS/CSS, the ability to maintain categories etc separate from body text, manage Gadgets sanely on a wiki page, or several other things (see the link below).
I have described my plans in more detail on meta:
http://meta.wikimedia.org/wiki/Wikidata/Notes/ContentHandler
A very rough prototype is in a dev branch here:
http://svn.wikimedia.org/svnroot/mediawiki/branches/Wikidata/phase3/
Please let me know what you think (here on the list, preferably, not on the talk page there, at least for now).
Note that we *definitely* need this ability for Wikidata. We could do it differently, but I think this would be the cleanest solution, and would have a lot of mid- and long term benefits, even if it's a short term pain. I'm presenting my plan here to find out if I'm on the right track, and whether it is feasible to put this on the road map for 1.20. It would be my (and the Wikidata team's) priority to implement this and see it through before Wikimania. I'm convinced we have the manpower to get it done.
Cheers, Daniel
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l