On 02/05/11 18:15, Roan Kattouw wrote:
While I'm sure this particular bug has been fixed,
it sounds like the
underlying problem remains. FCKeditor seems to be converting wikitext
to HTML, let users edit the HTML, then convert the HTML back to
wikitext. The bugs would then result from the fact that the
wikitext->HTML->wikitext round-trip (or wikitext->whatever internal
representation is used->wikitext) isn't clean.
Trevor and I talked about this issue about a year and a half ago, and
figured the best way around round-trip bugs was to not do round-trips
at all. Instead, wikitext or something close to it should be used as
an internal representation, and/or only the parts of the page the user
touches should actually change.
What about using a kind of document tree representation of wikitext?
You could have an intermediate representation which precisely
represents all of the source wikitext, but was easy to convert to
displayable HTML. Kind of like HTML, but annotated to show which of
the multiple options for HTML to wikitext transformation should be
chosen on the return trip in order to preserve unchanged wikitext
That's what Wikia's editor does. It uses a subclass of the core
MediaWiki parser to generate HTML-like output which is richly
annotated with comments and custom attributes, allowing precise
round-trip transformation of unchanged text.
The client side is not a generic HTML editor, rather it responds to UI
events by editing the intermediate DOM representation, using code
which is aware of the special structure of that document tree.
Maybe there are remaining round-trip bugs, but there's no obvious
reason why they couldn't be fixed using this general approach.
So that's what I know about the issues when
introducing FCKeditor to
an existing wikitext 'codebase'. I hear it's fairly decent when used
from the start, but I'm not familiar enough with it to comment on
That's not what I hear. I hear that there were some teething problems,
especially related to round-trip conversion, but that those were
sorted out long ago.
By the way, it's not FCKEditor. The server side seems to have been
rewritten from scratch by Wikia, and the client side has been extended
and patched. RTE is probably a good name for it, since that's what
they call it.
If you want to know more, this appears to be the relevant code:
-- Tim Starling