On Tue, Dec 28, 2010 at 8:28 PM, Rob Lanphier <robla(a)wikimedia.org> wrote:
Let me riff on what you're saying here (partly
just to confirm that I
understand fully what you're saying). It'd be very cool to have the
ability to declare a single article, or probably more helpfully, a
single revision of an article to use a completely different syntax.
There's already technically a kludgy model for that now: wrap the
whole thing in a tag, and put the parser for the new syntax in a tag
extension. That said, it would probably exacerbate our problems if we
allowed intermixing of old syntax and new syntax in a single revision.
The goal should be to move articles irreversibly toward a new model,
and I don't think it'd be possible to do this without the tools to
prevent us from backsliding (for example, tools that allow editors to
convert an article from old syntax to new syntax, and also tools that
allow administrators to lock down the syntax choice for an article
without locking down the article).
I'd actually approach it from the opposite direction. Add a tag to mark the
old
syntax at the same time as the new parser is ready, but before it's
installed. Set up the interface initially to mask the presence of the
"oldsyntax" marker, but still have it present when the text is saved. Make
sure the old parser ignores the "oldsyntax" tag, and then run a job to add
it everywhere. Install the new parser, which defers the delimited text to
the old one.
Bring the new UI online that is able to edit the new markup, and make sure
it's used for all new articles. Start "unhiding" the oldsyntax marker and
letting conversions happen on an "all or nothing" basis. After a few weeks
of that, throw an editfilter up that stops the addition or readdition of the
oldsyntax marker. Keep converting, and start doing more and more rounds of
automatic conversions. Finally, when it's down to a handful of articles
still using the old parser throw an editfilter up that won't allow saving
until you convert the wikitext.
That gives us a way to do it that's not all at once, and lets us use
existing tools to keep decreasing the use of the old syntax until it dies
completely. And an administrator or other appropriately flagged user could
overrule the edit filter to go back to the old syntax on an article if it
broke.