Skip to content

Leftium/Todo.taskpaper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Todo.taskpaper

Enhanced text editor for TaskPaper files that runs in your browser.

Try a live demo in your browser: todo-taskpaper.leftium.com

Different URL hashes result in different behavior:

  • #WELCOME By default, opens sample welcome.taskpaper with more information about Todo.taskpaper.
  • #CHOOSE Dropbox chooser. (Click the link in the CoffeeConsole if your browser blocks pop-ups.)
  • #BLANK Opens a new, blank outline.
  • #DEMO Run CoffeeScript encoded in the URL. Share with your friends/colleagues.
  • #INCEPTION A tour of how to edit, share, and save documents; all without a server!

Screenshot

The Todo.taskpaper Vision, and What's Coming:

  • When completed, Todo.taskpaper will support many different enhanced views. Multiple types of views on the same document allows adding features without cluttering the interface. Incompatible features that could otherwise not work together can each have their own views. Some example views I'm thinking of:
    • Calendar/scheduler view (similar to NotePlan)
    • Priority view: tasks automatically sorted by @due/@priority
    • Agenda view: dependent tasks hidden/folded away
    • Bookmarks view: optimized for organizing URL's (inspired by Bkmks.com)
  • Individual tasks may be rendered differently based on their tags. For example, a @bookmark tag causes the task to be rendered with a favicon in place of the dash.
  • The interactive console will expose an intuitive character string view that is synchronized to the outline. Modify the string and the outline object is automatically updated. Modify the outline object and the string is automatically updated.
  • In addition, you will be able to create and share your own custom views via a plugin API.

Currently Implemented Features:

  • Synchronization between views Instant and automatic!
    • birch-outline, text editor, link view, Dropbox, URL hash
  • Load files from Dropbox. With automatic two-way sync.
    • Dropbox Chooser lets you browse your files.
    • Direct Dropbox paths also supported in the URL hash.
  • Share snippets of CoffeeScript via URL. This issue for birch-outline links to a live reproduction.

Currently Implemented Views

  • Interactive console with birch-outline. Accessed via embedded CoffeeScript console.
  • Linkified view with neat URL's Links are automatically shortened.
  • URL hash view. Address bar is automatically updated with shareable URL-encoded link.
  • Basic text editor. With support for folding.

Planned Features

  • Recurring tasks
  • Enhanced views
    • Calendar View
  • Plug-in API: Create and share your own custom views!

History and Background of Todo.taskpaper

This proof-of-concept only took a few days to develop, but I've been developing the idea for over a decade. When I started, I didn't know about TaskPaper. I had my own special format for paper to-do lists. However, paper lists got messy and I regularly found myself copying unfinished tasks to a fresh sheet of paper by hand.

Then I discovered todo.txt. Using the CLI to manage a plain-text file was pretty clever. I tried to make it more clever: I figured the browser was an even more ubiquitous platform than the CLI, and allowed advanced GUI interaction.

I ported Todo.txt-CLI to the browser: Todo.html. The original vision was a single text file that was both a text file and HTML web app at the same time. Start editing it in a regular text editor and process it with todo.txt-CL, then open in a browser the next moment to get a great visualization of your tasks! (I had stuffed all the minimized HTML/CSS/JS into a single line at the bottom of a single todo.html file. This file could save itself like TiddlyWiki.)

Alas, this idea was too clever. I got an initial version working, but I hit the limits of the todo.txt format. Text editors did not like single lines of that were over 500KB long! So around this time I switched to the TaskPaper format. By folding the HTML/CSS/JS code under a project, I was able to split it into shorter lines that editors didn't choke on. The TaskPaper format also had other advantages:

  • it was more flexible and I could add notes related to tasks
  • the concept of tags with attributes was really useful
  • the natural hierarchy lent itself well to dependent tasks and sub-tasks

I finally had to give up the idea of a dual plain-text/html-web-app file that saves itself. Storing the code with the data in a single file does not work as well as I had hoped on mobile (bandwith/browser issues). But I still had hopes for an advanced editor/visualization of taskpaper tasks via the browser!

Then I ran into another challenge: the TaskPaper format was more complex and thus more difficult to parse. I toyed with the idea of writing my own custom lexer/parser, but I'm more interested in UX than compiler design. So I shelved this project until I found birch-outline.

About

Enhanced text editor for TaskPaper files.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published