blob: 45da5739130faa7567d6519b1ebed383f17e6110 [file] [log] [blame]
#summary Creating Documents, etc.
#labels Importance-Details,Phase-Design,Contents-Draft
= What to Do with TinyMCE in Melange =
* Issue 306 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:
# options for replacing it
# 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== 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/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]
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.
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 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.