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 [http://code.google.com/p/soc/issues/detail?id=306 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==
_...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 [http://docs.python.org/library/difflib.html difflib module]
* It would also be possible to write a diff that works in javascript, client side. See, for example [http://snowtide.com/jsdifflib JSdifflib] and [http://ejohn.org/files/jsdiff.js 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 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.