Dear all,
I've started to develop a simple wysiwyg editor that could be useful to wikipedia. Basically the editor gets the wiki code from wikipedai and builds the html on client side. Then you can edit the html code as you can imagine and when you are done another script converts the html back to wiki code.
There is a simple demo here : http://www.corefarm.com:8080/wysiwyg?article=Open_innovation . You can try other pages from http://www.corefarm.com:8080/ (type the article name). It's far from being really usable now but do you think that such a tool would be useful ? The global structure is ok, most of the buttons are working (even if there are no special images to figure out what they actually do); it's just a matter of filling the gaps and support all the wikipedia syntax.
You comments are welcomed!
All the best,
William
On 31 May 2010 22:53, William Le Ferrand william@corefarm.com wrote:
I've started to develop a simple wysiwyg editor that could be useful to wikipedia. Basically the editor gets the wiki code from wikipedai and builds the html on client side. Then you can edit the html code as you can imagine and when you are done another script converts the html back to wiki code. There is a simple demo here : http://www.corefarm.com:8080/wysiwyg?article=Open_innovation . You can try other pages from http://www.corefarm.com:8080/ (type the article name). You comments are welcomed!
What you're working on is a *hard* problem a lot of people have attempted, with varying success. There's been some discussion of this of late on mediawiki-l.
The default editor on new wikia.com wikis is WYSIWYG-only. This works tolerably well (a bit buggy, but actively worked on).
The common WYSIWYG solution for MediaWiki is FCKeditor, which works *almost* pretty well but: (a) falls down badly when you try to mix WYSIWYG editing with wikitext editing and chews up the wikitext (b) doesn't cope very well with the weirdest stuff done on English Wikipedia, where wikitext is tortured horribly to squeeze out every possible emergent side-effect for editor's use (c) is not actually being worked on at the moment. (Though one mediawiki-l contributor says he's been using it to good effect on his work intranet and is seeking permission to release back his changes under GPL.)
http://mediawiki.fckeditor.net/ http://www.mediawiki.org/wiki/Extension:FCKeditor_%28Official%29
FCK+MediaWiki discussion recently:
http://lists.wikimedia.org/pipermail/mediawiki-l/2010-May/thread.html#33896 http://lists.wikimedia.org/pipermail/mediawiki-l/2010-May/thread.html#34061
You may care to have a look at FCKeditor+MediaWiki and see if you've just reinvented the wheel and can help get that up to scratch. Or, alternately, if your approach is different enough and better enough to pursue nevertheless ;-)
- d.
The default editor on new wikia.com wikis is WYSIWYG-only. This works tolerably well (a bit buggy, but actively worked on).
It's not WYSIWYG only. You can switch between that and regular wikitext whilst you're on the edit page using the "source" button, or you can select which you want to use in your preferences. A new version was released a couple of weeks ago, so many of the older bugs are now resolved. There are some new ones of course, but it's improving all the time. :)
Angela
On 31 May 2010 23:50, Angela beesley@gmail.com wrote:
The default editor on new wikia.com wikis is WYSIWYG-only. This works tolerably well (a bit buggy, but actively worked on).
It's not WYSIWYG only. You can switch between that and regular wikitext whilst you're on the edit page using the "source" button, or you can select which you want to use in your preferences. A new version was released a couple of weeks ago, so many of the older bugs are now resolved. There are some new ones of course, but it's improving all the time. :)
:-D
How installable and workable is this on, say, any random work intranet with a fairly generic MW 1.16 installation? I may give it a go at work ...
[cc to mediawiki-l]
- d.
On Tue, Jun 1, 2010 at 8:55 AM, David Gerard dgerard@gmail.com wrote:
How installable and workable is this on, say, any random work intranet with a fairly generic MW 1.16 installation? I may give it a go at work
As far as I know, the problem right now is that Wikia's rich text editor requires core changes, rather than simply being an extension you can install. The code is all available at https://svn.wikia-code.com/ but it still needs to be packaged up to make it easier for third-party use.
... and the problem with the wikitext being mangled is that diffs show a 100% text change for any alteration
Luckily this is now a rare bug, and not the norm. Work is ongoing to resolve the remaining causes of this. The aim is for diffs to work in exactly the same way as they do with wikitext-only.
Angela
Just noting that we at WMF have been talking to Wikia about taking a look at their code to see if it can be made useful for WMF properties. Expect to hear more about Rich Text Editing soonish.
Danese
On 5/31/10 4:00 PM, Angela wrote:
On Tue, Jun 1, 2010 at 8:55 AM, David Gerarddgerard@gmail.com wrote:
How installable and workable is this on, say, any random work intranet with a fairly generic MW 1.16 installation? I may give it a go at work
As far as I know, the problem right now is that Wikia's rich text editor requires core changes, rather than simply being an extension you can install. The code is all available at https://svn.wikia-code.com/ but it still needs to be packaged up to make it easier for third-party use.
... and the problem with the wikitext being mangled is that diffs show a 100% text change for any alteration
Luckily this is now a rare bug, and not the norm. Work is ongoing to resolve the remaining causes of this. The aim is for diffs to work in exactly the same way as they do with wikitext-only.
Angela
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
Hi! Another approach is to reduce the complexity of wikitext editing by using syntax highlighting and javascript dialogs. There is wikEd editor which is being developed with such approach in mind: http://en.wikipedia.org/wiki/User:Cacycle/wikEd I does diffs, too. Dmitriy
On 1 June 2010 07:03, Danese Cooper dcooper@wikimedia.org wrote:
Just noting that we at WMF have been talking to Wikia about taking a look at their code to see if it can be made useful for WMF properties. Expect to hear more about Rich Text Editing soonish.
:-D :-D
Weeks, months?
- d.
"Danese Cooper" dcooper@wikimedia.org wrote in message news:4C04A2BA.3070100@wikimedia.org...
Just noting that we at WMF have been talking to Wikia about taking a look at their code to see if it can be made useful for WMF properties. Expect to hear more about Rich Text Editing soonish.
Danese
What are we expecting to hear from them? The code is open source and available in a SVN repo; the only challenge is working out exactly how it differs from MW trunk and why. I can see how some information (like which revision it was branched from) could be more easily obtained from asking rather than playing with svn merge, but are they likely to commit real man-hours into making these features trunk-friendly?
--HM
Hi there Happy-melon (great handle, btw).
Its not quite that straightforward. We have met with Wikia folks and they've acknowledged that it will be a fair bit of work to adapt it to our uses. Wikia has offered us engineering resources to assist this effort. As I say, we are planning to investigate further in the coming months and of course we'll disclose our findings.
Danese
On 6/1/10 4:37 PM, Happy-melon wrote:
"Danese Cooper"dcooper@wikimedia.org wrote in message news:4C04A2BA.3070100@wikimedia.org...
Just noting that we at WMF have been talking to Wikia about taking a look at their code to see if it can be made useful for WMF properties. Expect to hear more about Rich Text Editing soonish.
Danese
What are we expecting to hear from them? The code is open source and available in a SVN repo; the only challenge is working out exactly how it differs from MW trunk and why. I can see how some information (like which revision it was branched from) could be more easily obtained from asking rather than playing with svn merge, but are they likely to commit real man-hours into making these features trunk-friendly?
--HM
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
On 2 June 2010 16:16, Danese Cooper dcooper@wikimedia.org wrote:
Its not quite that straightforward. We have met with Wikia folks and they've acknowledged that it will be a fair bit of work to adapt it to our uses. Wikia has offered us engineering resources to assist this effort. As I say, we are planning to investigate further in the coming months and of course we'll disclose our findings.
I expect for them, of course, the win would be to be closer to trunk.
(Now we just need a 1.16 ...)
- d.
"David Gerard" dgerard@gmail.com wrote in message news:AANLkTimhzXdzWQwyT748NEmUsit_5ckLLVwLEByef2yx@mail.gmail.com...
On 2 June 2010 16:16, Danese Cooper dcooper@wikimedia.org wrote:
Its not quite that straightforward. We have met with Wikia folks and they've acknowledged that it will be a fair bit of work to adapt it to our uses. Wikia has offered us engineering resources to assist this effort. As I say, we are planning to investigate further in the coming months and of course we'll disclose our findings.
I expect for them, of course, the win would be to be closer to trunk.
True. Waiting with eager anticipation :-D
--HM
On Mon, May 31, 2010 at 5:53 PM, William Le Ferrand william@corefarm.com wrote:
I've started to develop a simple wysiwyg editor that could be useful to wikipedia. Basically the editor gets the wiki code from wikipedai and builds the html on client side. Then you can edit the html code as you can imagine and when you are done another script converts the html back to wiki code.
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.
On 31 May 2010 23:31, Aryeh Gregor Simetrical+wikilist@gmail.com 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.
... and the problem with the wikitext being mangled is that diffs show a 100% text change for any alteration whatsoever and become useless. Even if the content isn't semantically mangled.
FCK+MW is so *almost* there it's frustrating how close it seems. But then, this is a problem where the last 5% of the list is the last 95% of the work.
(Will *this* be what tempts me to take up coding? Be afraid ... I have the algorithmic insight of a sysadmin and only know about force and brute force ...)
- d.
On 31 May 2010 23:37, David Gerard dgerard@gmail.com wrote:
On 31 May 2010 23:31, Aryeh Gregor Simetrical+wikilist@gmail.com 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
2010/6/1 Conrad Irwin conrad.irwin@gmail.com:
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.
This is quite close to the approach we usability devs were throwing around some time ago: constantly work with the wikitext version of the article to avoid problems inherent in round-tripping between wikitext and HTML. Recently, however, Trevor's been playing around with a different concept called block-level editing; I'll leave it to him to elaborate on that.
Roan Kattouw (Catrope)
On 6/1/10 8:24 AM, Roan Kattouw wrote:
2010/6/1 Conrad Irwinconrad.irwin@gmail.com:
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.
This is quite close to the approach we usability devs were throwing around some time ago: constantly work with the wikitext version of the article to avoid problems inherent in round-tripping between wikitext and HTML. Recently, however, Trevor's been playing around with a different concept called block-level editing; I'll leave it to him to elaborate on that.
Roan Kattouw (Catrope)
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
First off, I try not to get involved in these threads because they are almost always the same circle of "Why not?" -> "Because!" and "What if?" -> "No!", etc.
In Berlin I gave a quick demo in the UX working group of a new parser I've been writing that understands the structure and meaning of Wikitext, rather than just converting it on the fly into HTML like the current parser (actually a hybrid parser/renderer) does. To be fair, the current pre-processor does properly parse things into a node-tree, but only for a small subset of the language, namely templates. My alternative approach parses the entire wikitext document into a node-tree, which can then be rendered into HTML (or any format for that matter) or back to wikitext. By having a unified data-structure for an entire article, we can do all sorts of things that were never before possible.
What we need is to be looking at building a first-class wikitext-editor, rather than adapting a buggy HTML editing system (ContentEditable). Wikitext deserves an editor that thinks in wikitext. Wikitext is a round peg, and ContentEditable is a square hole. It doesn't matter how much you try and force it in, it will never fit properly. Google has come to this conclusion after years of struggling with buggy browsers and poorly designed APIs. I would prefer not to go down a long road of hardship and struggles just to come out with a similar conclusion.
- Trevor
* Trevor Parscal tparscal@wikimedia.org [Tue, 01 Jun 2010 11:31:03 -0700]:
In Berlin I gave a quick demo in the UX working group of a new parser I've been writing that understands the structure and meaning of Wikitext, rather than just converting it on the fly into HTML like the current parser (actually a hybrid parser/renderer) does. To be fair,
the
current pre-processor does properly parse things into a node-tree, but only for a small subset of the language, namely templates. My alternative approach parses the entire wikitext document into a node-tree, which can then be rendered into HTML (or any format for
that
matter) or back to wikitext. By having a unified data-structure for an entire article, we can do all sorts of things that were never before possible.
XML and DOM processing probably, too. Traversing / modifying any part(s) of particular wiki page, not just the whole page at once. Though current parser probably just wants to be fast.
What we need is to be looking at building a first-class
wikitext-editor,
rather than adapting a buggy HTML editing system (ContentEditable). Wikitext deserves an editor that thinks in wikitext. Wikitext is a
round
peg, and ContentEditable is a square hole. It doesn't matter how much you try and force it in, it will never fit properly. Google has come
to
this conclusion after years of struggling with buggy browsers and
poorly
designed APIs. I would prefer not to go down a long road of hardship
and
struggles just to come out with a similar conclusion.
Complex.. I wish that would really be possible. Dmitriy
On Tue, Jun 1, 2010 at 00:31, Aryeh Gregor Simetrical+wikilist@gmail.com 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.
Another solution would be to identify a "simple" subset of wikitext for which the mapping to XHTML is one-to-one and refuse to work on anything else (i.e. revert to the standard editor). The rationale here is that a visual editor would (probably) be aimed at new editors, and they should probably avoid complicated syntax anyways. That's the approach we took on MeanEditor http://www.mediawiki.org/wiki/Extension:MeanEditor.
In our experience, the biggest obstacle is to get the different browsers to reliably make the same changes to HTML. The editor interface is non-standard, and browsers sometimes disagree on encoding rules, escaping, choice of tags, etc.
Anyways, there is a survey of existing approaches at http://www.mediawiki.org/wiki/WYSIWYG_editor. This might be useful to new editor developers, and if you find a cool idea it would be nice to contribute to the page. The usability project also did a survey last year: http://usability.wikimedia.org/wiki/Environment_Survey/MediaWiki_Extensions/Results. In the end, I think the FCKeditor developers did an amazing work, but I am still convinced that a simple (and hopefully reliable) HTML-based solution would have a purpose. Also, it's nice to be able to compare different designs. Bye, -- Jacopo
On Tue, Jun 1, 2010 at 4:09 AM, Jacopo Corbetta jacopo.corbetta@gmail.com wrote:
In our experience, the biggest obstacle is to get the different browsers to reliably make the same changes to HTML. The editor interface is non-standard, and browsers sometimes disagree on encoding rules, escaping, choice of tags, etc.
We could do the really hard way, like Google did with Google Docs (http://googledocs.blogspot.com/2010/05/whats-different-about-new-google-docs...): make *everything* via JS by capturing keystrokes and mouse movements. This way a consistent and reproducible user experience on all platforms can be achieved. And by doing it all in JS, the editor could also generate a wikitext-delta right away and doesn't need to transfer the whole page's wikitext.
Marco
On Tue, Jun 1, 2010 at 11:22 PM, Marco Schuster marco@harddisk.is-a-geek.org wrote:
On Tue, Jun 1, 2010 at 4:09 AM, Jacopo Corbetta jacopo.corbetta@gmail.com wrote:
In our experience, the biggest obstacle is to get the different browsers to reliably make the same changes to HTML. The editor interface is non-standard, and browsers sometimes disagree on encoding rules, escaping, choice of tags, etc.
We could do the really hard way, like Google did with Google Docs (http://googledocs.blogspot.com/2010/05/whats-different-about-new-google-docs...): make *everything* via JS by capturing keystrokes and mouse movements. This way a consistent and reproducible user experience on all platforms can be achieved. And by doing it all in JS, the editor could also generate a wikitext-delta right away and doesn't need to transfer the whole page's wikitext.
Marco
Google Doc's interface acts like sh*t unless your on a super dooper decent computer and gives negative views on the usability of a service. -Peachey
On Wed, Jun 2, 2010 at 1:42 AM, K. Peachey p858snake@yahoo.com.au wrote:
On Tue, Jun 1, 2010 at 11:22 PM, Marco Schuster marco@harddisk.is-a-geek.org wrote:
On Tue, Jun 1, 2010 at 4:09 AM, Jacopo Corbetta jacopo.corbetta@gmail.com wrote:
In our experience, the biggest obstacle is to get the different browsers to reliably make the same changes to HTML. The editor interface is non-standard, and browsers sometimes disagree on encoding rules, escaping, choice of tags, etc.
We could do the really hard way, like Google did with Google Docs (http://googledocs.blogspot.com/2010/05/whats-different-about-new-google-docs...): make *everything* via JS by capturing keystrokes and mouse movements. This way a consistent and reproducible user experience on all platforms can be achieved. And by doing it all in JS, the editor could also generate a wikitext-delta right away and doesn't need to transfer the whole page's wikitext.
Marco
Google Doc's interface acts like sh*t unless your on a super dooper decent computer and gives negative views on the usability of a service. -Peachey
I run a 3 year old laptop (Intel C2D though, but near-to-no cpu load in Firefox, even less in Chrome) and no problems with it, except that printing always does totally not look like what I see in the browser... hopefully Google will make proper PDF export for printing.
Marco
On 31 May 2010 23:53, William Le Ferrand william@corefarm.com wrote:
Dear all,
I've started to develop a simple wysiwyg editor that could be useful to wikipedia. Basically the editor gets the wiki code from wikipedai and builds the html on client side. Then you can edit the html code as you can imagine and when you are done another script converts the html back to wiki code.
There is a simple demo here : http://www.corefarm.com:8080/wysiwyg?article=Open_innovation .
This is a nice approach, It will be really helpfull for no-geek people, and theres millions (literally) of no geek people you may want to be able to edit a MediaWiki based wiki.
"Beyond this place, there be dragons!"
I like your implementation, because feel almost fullscreen. Too bad theres two scrollbars. Are these two scrollbars needed? Maybe the whole "page" can scroll, and the toolbar be stuck on the top of the screen. I suppose your implementation still pretends is a textarea, because that way the toolbar is always visible. But this is not needed if theres some CSS magic that can make the toolbar visible.. floating.
You can even have different toolbar in different regions, like a "Close / Save " toolbar on the North-Right that only show if the mouse is near that location.
wikitech-l@lists.wikimedia.org