devilry/devilry-django — Issue #280: Handle multiple input formats
Author: espenak
Created: 2012-03-08 15:15:15+00:00
State: open

We should be able to handle multiple input formats for feedback. Plone (http://plone.org) handles this smoothly, so we should probably just more or less copy their solution:

- Default to a very user friendly format. We should probably use a WYSIWYG html editor as default.
- Allow users to change the input format, but that will clear the current input.
- We assume that the common use case is to change format _before_ we start editing.
- Avoid data loss by saving a draft before changing the format. The can then copy over anything they want from the draft.
- Allow users to change their preferred default input format in their settings.

## Avoiding the unlimited number of input formats mess
When we allow multiple input formats we can easily end up with a lot of formats where none of them are supported 100%. To avoid this I propose that any new format should have a clear use case. To start with this should be:

- HTML (WYSIWYG) for simple feedback.
- Markdown for power-features like LaTeX math and code syntax highlighting.
- Should add a markdown plugin suitable for pasting plain text. Indenting it 4 spaces is not optimal. Something like the github flavored markdown solution with 4 spaces **and** an alternative that does not required indent is better.