On 31 May 2010 23:37, David Gerard <[email protected]> wrote: > On 31 May 2010 23:31, Aryeh Gregor <[email protected]> wrote: > >> Wiki syntax is too complicated for this to be feasible. It also >> doesn't have a one-to-one mapping to HTML. It's been tried before, >> but what you end up with is that it doesn't round-trip: if you open in >> the WYSIWYG editor and save with no changes, it saves totally >> different wikicode, confusing anyone who's using actual wikitext. The >> only feasible solutions are to either drastically simplify wikitext, >> or switch to WYSIWYG only, and those would both be very disruptive. >
The other solution is to use a proper MVC framework, and define everything in terms of modifications to the wikitext (and you can then constrain what those modifications are to avoid mangling) and run that through a parser to generate the html preview. Alternatively, if your wikitext modifications are constrained enough, it is possible to implement modifications as a pair of functions, one of which edits the wikitext and the other edits the HTML (this is the method used by English Wiktionary for the translation adding interface - and makes undo/redo really easy). Building such a thing is time-consuming - particularly if you have to ensure that the wikitext modification and the HTML modification are the same - as there's a pretty large number of things people would like to do with wikitext. That said, it's pretty possible to use a wysiwyg for editing the contents of a paragraph, so you could have one action for "change the content of" in addition to actions for inserting/deleting and moving things around (in a perfect world, a wysiwyg would trigger constrained actions based on user-interaction - that is the "hard" part of this - the rest is just complicated). As there's already a javascript thing for general template arguments modifications (based on xml somehow), so this would be extendable to work with templates too. Conrad _______________________________________________ Wikitech-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikitech-l
