# Minimal Viable TODO
The TODO list is an editable document in MarkDown.
1. The system uses a CodeMirror instance. Each line is an item.
2. It persists data to local storage AND to the server's .data directory.
3. It uses Markdown as a representation
4. Markdown heading lines (starting with one or more #) are section markers. So # Next is the next group. # Projects is the project group. Projects start with ##. Subprojects with ###
5. When I leave a line the system turns the line from Markdown to HTML Entering a line reverses the process.
7. When I leave a line, any line with a # or @ annotation is moved to the matching section. Top or bottom of section to be decided later.
8. The annotation #done overrides all other # annotations, and moves the item to the end of the relevant section. #done lines are rendered with a .task_done style, which is a strikethrough.
9. Ctrl-up/Down are used to move lines up and down
10. Ctrl-K selects the current word (if nothing is selected) or uses the current selection, and wraps it in [] and pastes the current clipboard contents wrapped in (). This is the markdown link syntax.
11. Add a RESTFUL API that will let me read the list or push it to a remote site.
12. Push the system to `glitch` which will give me a project that I can work on, online.
# Ideas for next phase
Use the CodeMirror `marktext` API and code folding API to hide/show regions of the document.
By default, regions are unfolded when the cursor enters them; are folded when the cursor moves out.
Convert atomic edits to Redux Actions.
No comments:
Post a Comment