Overview

This is a very simple pure JavaScript outliner.
It is only tested with Firefox 3.6+ and Chrome 10, both only under Linux.

Requirements:
-------------
A recent browser. IE 8 might work when using things like:
https://github.com/eligrey/classList.js

But I doubt it.

Multiline copy/cut and paste only works in Chrome. It might also work
under other WebKit browsers (like Apple Safari), but I haven't tested it
and thus not enabled it for browsers other than Chrome.

Navigation:
-----------
Up ............ move to previous line
Down .......... move to next line
Ctrl+Up ....... move to previous line on same level
Ctrl+Down ..... move to next line on same level
Home .......... move to begin of line
Ctrl+Home ..... move to begin of document
End ........... move to end of line
Ctrl+End ...... move to end of document

Commands:
---------
Tab ........... indent
Shift+Tab ..... outdent
Enter ......... split line on current caret position
Shift+Enter ... insert new line above current
Ctrl+Enter .... insert new indented line
Alt+Enter ..... insert new line below current
Ctrl+Space .... expand/collapse nested lines
Alt+R ......... sort lines of current nesting level
Alt+Shift+R ... reverse sort lines of current nesting level
Alt+U ......... numeric sort lines of current nesting level
Alt+Shift+U ... reverse numeric sort lines of current nesting level
Backspace ..... delete character/merge lines
Del ........... delete character/merge lines
Ctrl+O ........ open document from local storage
Ctrl+S ........ save document in local storage
Ctrl+Z ........ undo
Ctrl+R ........ redo

Drag and Drop:
--------------
You can drag lines using the handle you also use to collapse/expand nested
lines. This way you can easily move lines and ther nested lines to another
position in the document. Holding Ctrl when starting dragging you will make
a copy of the dragged line. With Ctrl it is also possible to drag the lines
into another outliner window or even a text editor.

You can also drag multiline selections, which will make a copy of the
selected lines at the point of drop. Maybe this behaviour will change to
be like cut and paste instead of copy and paste in the future.

Besides lines from another outliner and plain text you can also drop files
and URLs into the outliner. A HTML 5 enabled browser will be able to read
the files from disk (e.g. Firefox 3.6 and Chrome 6 or newer). Due to
security restrictiony in browsers dropped URLs may be only from the same
domain form which the outliner itself is hosted.

Save and Open:
--------------
Documents are stored in the browsers local storage and not as seperate
files. This is a HMTL 5 feature and only supported by somewhat recent
browsers.

Note: Some browsers (like Firefox) do not persist the local storage for the
file:// protocol. Use the export feature to persit documents in such browsers.

Import and Export:
------------------
Exporting works through on the fly generated data URLs (URLs where the whole
file is embedded encoded in base 64) with the mime type application/octet-stream
so the browser opens a Save As dialog. There is no way to suggest a file name
using data URLs so you have to come up with a meaningful name yourself.

As with dropping files also importing files through a file dialogue is supported
using the HTML 5 File API. Here it is Chrome that does not support this feature
when the outliner is accessed through a file:// URL.

Supported formats are:
JSON ......... a custom JSON based file format
OPML ......... OPML only supporting the text attribute
Jree ......... Jreepad files
Plain Text ... UTF-8 plain text where lines are indented using the tab character

Limitations:
------------
Currently there is no support for columns, formatted text, data type limitation
on lines or formulars. Maybe I will implement this some day. Very likely not.