Steve Bennett wrote:
On 2/20/08, Minh Lê Ngọc cumeo89@gmail.com wrote:
I agree with all of you. A WYSIWYG editor can not replace Wikitext. In some cases, wikitext is a programing language like Java and NetBeans can't program Java for Java programmers.
If wikitext is a programming language, god help us. It's supposed to be a simple, intuitive replacement for complex languages like HTML.
With ParserFunctions, you have to take a lot of care not to end up with a turing complete language. We are pretty close. As soon as someone adds a while loop construct (or allows full recursion), we got it.
However, there 2 aspects of using MediaWiki: daily use (users may be novice, know little of Wikitext, edit simple pages) and template writing (experienced users write complicated code in templates for others to use). With the first one, WYSIWYG is a wonderful feature, with the second one, it's clumsy. So, a WYSIWYG editor should only cover some features of wikitext like: simple page representation, reference, template inclusion, extension call, page preview, categories, inter-wiki and leave others like: parser functions, magic variables, noinclude, includeonly, parameters...
Which is to say, that if there is a WYSIWYG editor, there should be a way of accessing the underlying XML directly.
So it's nto really about replacing wikitext with wysiwyg. But replacing wikitextwith XML, and also having wysiwyg editing for *some* aspects.
Through this mailing-list, I see that we are struggling with Wikitext, which is a time-consuming work. What I suggest is, instead of wasting more time, we can change to XML, which is clearer, easy to parse, easy to understand and easy to extend.
Heh. Replacing the wikitext parser with a better wikitext parser is a pretty significant change. Replacing it with an XML parser...wow. You aim big.
XML is designed as a data exchange format. Good XML (that is: using XML constructs for all structuring and semantic annotation) is extremely annoying to edit by hand. It wasn't made for that. Consider this:
{| class="prettytable" | ! foo ! bar |--- | style="align:right" | {{bla|blubb|x=frobble}} | {{#if:{{{1}}}|the '''[[bla|thing]]'''}} |}
as compared to
<table class="prettytable"> <thead> <tr> <th>foo</th> <th>bar</th> </tr> </thead> <tbody> <tr> <td style="align:right"> <template name="bla"> <param>blubb</param> <param name="x">frobble</param> </template> </td> <td> <function name="if"> <arg><paramref name="1"/></arg> <paramter>the <b><link target="bla">thing</link></b></parameter> </template> </td> </tr> </tbody> </table>
now, which is easier to read? which is easier to edit?
XML is great as an exchange format. And it's easy to parse (actually, it's quite tricky in the details, and rather slow too, but at least we have standard libraries for it)
I would *not* want to have to write/edit XML structures by hand. Not even as a template editing expert.
Mind you, having a clean mapping of wikitext from/to XML would be a VERY good thing. But that requires a real wikitext parser.
I think realistically the problem is that open source works relatively well for language compilers. People can add features simply by extending syntax etc, and it works. However, who amongst us has the ability to really implement and maintain a high quality WYSIWYG editor? It's hard, really hard. And a WYSIWYG editor with editable syntax, now you're talking about a tool like frontpage, dreamweaver etc. This is not a task for a couple of full time developers and a bunch of hobbyists.
Exactly. Just think of commonly used extensions like <cite> (not to mention insanely complex stuff like EasyTimeline). The extension editor would have to write complex GUI interaction that ties into a complex GUI framework, so it is possible to edit these constructs in a wysiwyg environment.
Also, any wysiwyg editor would have to take extreme care not to damage any structures it does not "understand". People could try to edit a template using such an editor, and screw it up completely, without ever noticing. I hear them say: "but i only fixed a typo".... yay.
Again: writing a good, robust and flexible wysiwyg editing framework would be a LOT harder (especially wrt extensions) than getting the wikitext parser done. IMHO it's like this: getting 90% is easy with both, a formal grammar, and a wysiwyg editor (based on XML or whatever). Getting the last 10% into the prmal gramamer is HARD. Getting the last 10% right in a visual editor is pretty much impossible, even if you don't need "template designed" ability - the features used in "normal" articles are bad enough.
-- Daniel