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(a)brightbyte.de>wrote;wrote:
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(a)lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l