A quick update on WYSIFTW, my "augmented wikitext" editor. (Please see
http://meta.wikimedia.org/wiki/WYSIFTW for details.)
Wikitext support is nearing completion. I added bold/italics a few
days ago, and yesterday it got some buttons to apply/remove such
markup from a selection. Just a few minutes ago, I finished wikitable
support - you can now edit text in table cells, in the same table
layout and style you see in the real article (though you cannot alter
the table or cell markup itself, add/remove rows, etc., which can
later be achieved through buttons in the sidebar or similar).
As of this moment, lists, indentations, <nowiki>, <pre>, and "---"
(<hr>) are not supported. These shouldn't be too difficult, compared
to the things already done.
I have taken great care to avoid unnecessary changes in the wikitext
being introduced through the parsing/unparsing process. I am not 100%
successful, but after test-loading dozens of random pages, as well as
a few of my standard tests (including [[Paris]] and [[Berlin]]), these
events seem to be rare, and do not appear to break valid wiki syntax.
If you find a page (it will warn you in the sidebar after parsing),
please add it to
http://meta.wikimedia.org/wiki/Talk:WYSIFTW#Pages_with_inherent_differences
.
The editing components have improved as well, but are far from the
usual Word-like capabilities. No cut/copy/paste, and no undo. The
former should be easy to do, at least for plain text; the latter will
require "recording" of all editing actions, which sounds like work to
me :-(
Speed has become an issue. I work with Chrome 10 on a not-too-old
iMac, so even behemoths like [[Paris]] are parsed in <20sec. However,
I have heard reports about times of >200sec, which is clearly too much
(20 sec is as well, IMO). A large chuck of the time seems to come from
bold/italics parsing, which can include up to four separate parsing
steps in my implementation. There is clearly room for improvement, but
I hesitate to optimize until all major features (e.g. lists) are
implemented, and I have some standard test pages available. I am also
thinking about using Selenium once WYSIFTW is feature-complete (as far
as wikitext goes).
There is the question of what browsers/versions to test for. Should I
invest large amounts of time optimising performance in Firefox 3, when
FF4 will probably be released before WYSIFTW, and everyone and their
cousin upgrades? As a one-man-show, I have to think about these
things.
Finally, there are, undoubtedly, a large number of bugs hidden in the
code. I assume they will be weeded out, given enough eyeballs (testers
and developers).
That wasn't as quick as I said in the first line of this mail. OTOH,
it's past midnight here (again!), and I'm getting too old for this...
Cheers,
Magnus