| # 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](http://code.google.com/p/soc/issues/detail?id=306). Let's talk about: |
| |
| 1. options for replacing it |
| 1. 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](http://docs.python.org/library/difflib.html) |
| * It would also be possible to write a diff that works in javascript, client side. See, for example [JSdifflib](http://snowtide.com/jsdifflib) and [John Resig's Diff algorithm](http://ejohn.org/files/jsdiff.js) |
| |
| ## 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](UserPreferences.md) option. Clearly it is easier to support just one. |