Given we have pages that contain CSS, JS and JSON in the MediaWiki namespace, this seems more like a good idea for a nice refactoring project than a new idea altogether. Is the way we support these non-wikitext pages indeed a dirty hack atm?

- Trevor

On Mon, Mar 26, 2012 at 7:48 AM, Sumana Harihareswara <sumanah@wikimedia.org> wrote:
Forwarding this to the wikitext-l list just in case.

-------- Original Message --------
Subject: [Wikitech-l] Cutting MediaWiki loose from wikitext
Date: Mon, 26 Mar 2012 16:45:51 +0200
From: Daniel Kinzler <daniel@brightbyte.de>
Reply-To: Wikimedia developers <wikitech-l@lists.wikimedia.org>
Organization: Wikimedia Deutschland e.V.
To: Wikimedia developers <wikitech-l@lists.wikimedia.org>,
mediawiki-l@lists.wikimedia.org
CC: Lydia Pintscher <lydia@pintscher.de>, Abraham Taherivand
<abraham.taherivand@wikimedia.de>

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

_______________________________________________
Wikitext-l mailing list
Wikitext-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitext-l