What to Do with TinyMCE in Melange

  • Issue 306 (on Google Code) TinyMCE editor fails to meet many user needs, consider replacing with wiki (this issue contains many merged issues)

TinyMCE in Melange is horked as detailed in Issue 306. Let's talk about:

  1. options for replacing it
  2. feasibility of those options

It has been suggested that the most beneficial thing to do would be to make Melange accept wiki markup and dispense with other text editing functionality.

Alternatives

  • HtmlBox
  • MarkDown
  • A wiki (using our own code and/or wikimarkup, wikimarkup is already in our libs).
  • ...add other alternatives considered here

Editing Requirements

...to be agreed/confirmed

The editor needs:

  • Standard formatting such as bold/italic/bullet-list/horizontal rule/tables.
  • Diffs for revision history
  • Images? (for screenshots)
  • Html links? (for links to supporting documentation)

Diffs

diffs/versioning - is important for proposal changes, documentation changes

  • Diff would be possible whether or not we stay with TinyMCE
  • Ready made python diff code exists. It's used in Rietveld. See also difflib module
  • It would also be possible to write a diff that works in javascript, client side. See, for example JSdifflib and John Resig's Diff algorithm

Tiny?

TinyMCE is not so very tiny, and accounts for some of the initial start up time when the first page on melange is opened. Thereafter most browsers re-use the existing cached files, so it is probably not slowing down the app on subsequent pages.

Security?

Wiki, i.e. having python creating the html rather than storing the html directly might make it easier to overcome some kinds of scripting ‘attacks’

  • Issue 448 (on Google Code) Mentor impersonation in proposal comments

However it is also possible (though possibly difficult to get 100% right) to strip ‘bad html’ from html. Wiki and TinyMCE (or similar) are not mutually exclusive, and which to use could be a UserPreferences option. Clearly it is easier to support just one.