Giter Club home page Giter Club logo

todo.txt-android's Introduction

todo.txt format

Gitter

A complete primer on the whys and hows of todo.txt.

The first and most important rule of todo.txt:

A single line in your todo.txt text file represents a single task.

Why plain text?

Plain text is software and operating system agnostic. It's searchable, portable, lightweight, and easily manipulated. It's unstructured. It works when someone else's web server is down or your Outlook .PST file is corrupt. There's no exporting and importing, no databases or tags or flags or stars or prioritizing or insert company name here-induced rules on what you can and can't do with it.

The 3 axes of an effective todo list

Using special notation in todo.txt, you can create a list that's sliceable by 3 key axes.

Priority

Your todo list should be able to tell you what's the next most important thing for you to get done - either by project or by context or overall. You can optionally assign tasks a priority that'll bubble them up to the top of the list.

Project

The only way to move a big project forward is to tackle a small subtask associated with it. Your todo.txt should be able to list out all the tasks specific to a project.

In order to move along a project like "Cleaning out the garage," my task list should give me the next logical action to take in order to move that project along. "Clean out the garage" isn't a good todo item; but "Call Goodwill to schedule pickup" in the "Clean out garage" project is.

Context

Getting Things Done author David Allen suggests splitting up your task lists by context - ie, the place and situation where you'll work on the job. Messages that you need to send go in the @email context; calls to be made @phone, household projects @home.

That way, when you've got a few minutes in the car with your cell phone, you can easily check your @phone tasks and make a call or two while you have the opportunity.

This is all possible inside todo.txt.

todo.txt format rules

Your todo.txt is a plain text file. To take advantage of structured task metadata like priority, projects, context, creation, and completion date, there are a few simple but flexible file format rules.

Philosophically, the todo.txt file format has two goals:

  • The file contents should be human-readable without requiring any tools other than a plain text viewer or editor.
  • A user can manipulate the file contents in a plain text editor in sensible, expected ways. For example, a text editor that can sort lines alphabetically should be able to sort your task list in a meaningful way.

These two goals are why, for example, lines start with priority and/or dates, so that they are easily sorted by priority or time, and completed items are marked with an x, which both sorts at the bottom of an alphabetical list and looks like a filled-in checkbox.

Here are the rest.

Incomplete Tasks: 3 Format Rules

The beauty of todo.txt is that it's completely unstructured; the fields you can attach to each task are only limited by your imagination. To get started, use special notation to indicate task context (e.g. @phone ), project (e.g. +GarageSale ) and priority (e.g. (A) ).

A todo.txt file might look like the following:

(A) Thank Mom for the meatballs @phone
(B) Schedule Goodwill pickup +GarageSale @phone
Post signs around the neighborhood +GarageSale
@GroceryStore Eskimo pies

A search and filter for the @phone contextual items would output:

(A) Thank Mom for the meatballs @phone
(B) Schedule Goodwill pickup +GarageSale @phone

To just see the +GarageSale project items would output:

(B) Schedule Goodwill pickup +GarageSale @phone
Post signs around the neighborhood +GarageSale

There are three formatting rules for current todo's.

Rule 1: If priority exists, it ALWAYS appears first.

The priority is an uppercase character from A-Z enclosed in parentheses and followed by a space.

This task has a priority:

(A) Call Mom

These tasks do not have any priorities:

Really gotta call Mom (A) @phone @someday
(b) Get back to the boss
(B)->Submit TPS report

Rule 2: A task's creation date may optionally appear directly after priority and a space.

If there is no priority, the creation date appears first. If the creation date exists, it should be in the format YYYY-MM-DD.

These tasks have creation dates:

2011-03-02 Document +TodoTxt task format
(A) 2011-03-02 Call Mom

This task doesn't have a creation date:

(A) Call Mom 2011-03-02

Rule 3: Contexts and Projects may appear anywhere in the line after priority/prepended date.

  • A context is preceded by a single space and an at-sign (@).
  • A project is preceded by a single space and a plus-sign (+).
  • A project or context contains any non-whitespace character.
  • A task may have zero, one, or more than one projects and contexts included in it.

For example, this task is part of the +Family and +PeaceLoveAndHappiness projects as well as the @iphone and @phone contexts:

(A) Call Mom +Family +PeaceLoveAndHappiness @iphone @phone

This task has no contexts in it:

Email SoAndSo at [email protected]

This task has no projects in it:

Learn how to add 2+2

Complete Tasks: 2 Format Rules

Two things indicate that a task has been completed.

Rule 1: A completed task starts with an lowercase x character (x).

If a task starts with an x (case-sensitive and lowercase) followed directly by a space, it is marked as complete.

This is a complete task:

x 2011-03-03 Call Mom

These are not complete tasks.

xylophone lesson
X 2012-01-01 Make resolutions
(A) x Find ticket prices

We use a lowercase x so that completed tasks sort to the bottom of the task list using standard sort tools.

Rule 2: The date of completion appears directly after the x, separated by a space.

For example:

x 2011-03-02 2011-03-01 Review Tim's pull request +TodoTxtTouch @github

If you’ve prepended the creation date to your task, on completion it will appear directly after the completion date. This is so your completed tasks sort by date using standard sort tools. Many Todo.txt clients discard priority on task completion. To preserve it, use the key:value format described below (e.g. pri:A)

With the completed date (required), if you've used the prepended date (optional), you can calculate how many days it took to complete a task.

Additional File Format Definitions

Tool developers may define additional formatting rules for extra metadata.

Developers should use the format key:value to define additional metadata (e.g. due:2010-01-02 as a due date).

Both key and value must consist of non-whitespace characters, which are not colons. Only one colon separates the key and value.

todo.txt-android's People

Contributors

adamzaloudek avatar calumjeadie avatar cbbrowne avatar choas avatar chuckbjones avatar dae3 avatar deftelf avatar eisbehr avatar evanp avatar ginatrapani avatar gwadej avatar hayatelatech avatar hrayr-artunyan avatar intrications avatar jaydm avatar karbassi avatar krylez avatar marlusantos avatar maysam avatar mfriedenhagen avatar miwie avatar mpcjanssen avatar mwik avatar paulroub avatar rynoon avatar samkpo avatar shayneholmes avatar timbarlotta avatar tormodh avatar vorburger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

todo.txt-android's Issues

Deprecate Dropbox consumer/key and use a new secret set

Deprecate Dropbox consumer/key and use a new secret set

The Dropbox consumer key/secret has been published in an earlier version of the source code. Must deprecate that set, and use a new set for release. However, first we have to fix Issue #24.

Todo logic in separate java library built with maven?

Would it be ok to move the non-android logic to a separate java library, e.g. todo.txt-java, and build it with maven? This way other tools/apps could use the library for their implementations.

Pros:
The library can be reused with other java projects.
Maven runs junit tests automatically at build. Unit tests are executed without the android emulator.

Cons:
Library has to be built and copied over to todo.txt-touch/libs manually when changed.
An extra step (build-copy) and tool (maven2) for the todo.txt-touch android developers.

Priority gets duplicated when updating a task

Priority gets duplicated when updating a task

To reproduce: Add a task with priority. Then, choose the task and tap Update. The priority will show in the text area AND in the dropdown. Save and it will get duplicated.

Bug: Dropbox authorization is limited/has problems with multiple devices

Bug: Dropbox authorization is limited/has problems with multiple devices

If you've never authorized Todo.txt Touch before, the app authorization works perfectly. However, if you try to authorize it twice (say, on my Nexus One AND in the Android emulator), it doesn't work. To authorize a different/new device, you have to disconnect the app from your Dropbox account first, then re-auth through the app.

Also, the authorization only seems to work with one kind of Dropbox app, with sandbox access. If you create another Dropbox app with different consumer key/secret, authorization fails.

Browse Dropbox folder in order to choose destination folder

Right now the user has to manually type in the Dropbox folder location of their todo.txt file. Instead, tapping that setting should launch a Dropbox browser that lets the user choose an existing folder. (See how Draft implements this.)

This bug used to be: "Validate file location entry"

Entering /todo/foo:bar doesn't work. Bug report:

http://twitter.com/#!/Nannevn/status/27425997078921216

Also, a user reports folders with a space in the name don't work.

Improve Dropbox logout mechanism

Improve Dropbox logout mechanism

The checkbox in the preferences area to log out of Dropbox is strange--the state of the checkbox is meaningless.

Let's update this to work more like the official Dropbox app does. Should be a "Log out of Dropbox" button, with an "Are you sure?" prompt, and on tapping "Log out" (not "Cancel"), should reload the main screen with the Log in prompt showing.

Improve Dropbox login form

Improve Dropbox login form

Label username field 'Email address' and next field 'Dropbox password'. Add a note about requiring a Dropbox account to use the app--See related Issue #37

Use the words "Log in" and "Log out" to standardize with Dropbox

Task formatting off if project mentioned twice

Task formatting off if project mentioned twice

If a task contains a project name twice, but with only the second instance preceded by a + sign, the wrong one is highlighted. For example, if a task text is:

Merge TodoTxt pull request +TodoTxt

The first occurrence of TodoTxt is bold, not the project tag

Custom application icon

Custom application icon

Right now we're using an open source icon, but I'd like to have a custom icon, as other applications may already use that icon.

Ideally the icon will communicate what's unique about Todo.txt Touch, which is that it manages a plain text file, but a plain text file icon is too generic. Maybe it can include the word todo.txt somehow?

Update: Submission process from Todo.txt community is underway. We'll take submissions until 1/20 or so, then review and vote. Current submissions are in this photo album:
http://groups.yahoo.com/group/todotxt/photos/album/527529122/pic/list

Update: icon chosen, giving community time to post any objections. We'll add it to the project this weekend, once we get all the resolutions we need:
http://tech.groups.yahoo.com/group/todotxt/message/2826

New setting: Hide/show line numbers

New setting: Hide/show line numbers

By default line numbers are "hidden" (they're the same color as the background, and only show when an item is highlighted). Give user option to show them by coloring the text the same as the task text.

Add common action buttons to the title bar

Add (+) to title bar to add task, and a sync button to pull from Dropbox, and "clear filter" button when looking at filter results

As per John's suggestion:

http://tech.groups.yahoo.com/group/todotxt/message/2805

Remove the title bar icon and add an Add Task plus sign instead, like this:

http://cl.ly/45R7

Would be nice to also add a sync button to the title bar.

Update: Similarly, on search results and filter results, have a "Show All" or "Clear filter" button in the title bar

The Google IO application's source code is public and does this, we can use it to help get started:
http://code.google.com/p/iosched/

New User Preference: todo.txt file location

New User Preference: todo.txt file location

Right now the app assumes your todo.txt is in Dropbox's root folder. Add a preference to set a folder path relative to the Dropbox root.

Offline use

Offline use

The app should function normally when your phone is offline, and sync back to Dropbox next time it has a network connection.

Corollary: completing actions shouldn't depend on the sync and be so slow; ideally sync will happen in the background.

New Setting: Light/dark theme

New Setting: Light/dark theme

Give user the ability to set the background/text color to white on black or black on white.

Conform to Dropbox branding guidelines

Conform to Dropbox branding guidelines

https://www.dropbox.com/developers/branding

We require the use of Dropbox to be legible, unmodified, and we expect all references to link to Dropbox or its services. For example, if you want to put the word Dropbox in your app, make sure it links to the Dropbox site or is contained in a button or element that directs the user to the Dropbox service.

TODO:

  • Add link to Dropbox to create an account if you don't already have one--from the login dialog box
  • Possible to link Dropbox from Preferences page?

Every update reloads the list and moves you to the top

When dealing with long lists, even a simple change like reprioritizing an item causes the list to reload and bumps you back to the top. Reloading is probably required but it would be nice to have the list stay in the same place or at least show the item that was updated wherever it ended up.

Improve Add Task dialog

Improve Add Task dialog

In 'Add task' dialog, shorten priority list and make first option 'No priority'

In 'Add task' dialog, tap priority, and list title should be 'Priorites' (not first choice). Tap 'Projects' and Projects should be list title, not first choice. Same deal for Contexts.

When assigning a priority an extraneous dot gets added, and cursor should be after priority with a space automatically.

Not loading in AVD

I've forked the repo and have everything building in Eclipse. When I run as Android application, an Android 1.6 AVM loads and opens the home screen, but todo.txt-touch does not load and is not in the launcher. How may I run the app to test it visually in addition to the unit tests?

todo.txt instead of issues?

Personally I actually use todo.sh (cli) for issue tracking. I add tasks to a file in the project which is version controlled. For each release i archive the completed tasks to done.txt. The benefits are that it is disconnected from github, offline and all other benefits which todo.sh gives.

Would this be something that you guys would like to do with todo.sh-touch?

E.g.
todo.sh-touch/todo/todo.txt
todo.sh-touch/todo/done.txt

Create/improve About App dialog box

Create/improve About App dialog box

Right now the app version number is displayed at the top of the Settings screen. Move it to the bottom, and make it so that when you tap it, a dialog box with the icon, todotxt.com web site, version number, and credits are shown ala InstaFetch.

Prioritize Menu Option Missing D

When you click an item in the list, the context menu comes up. Selecting 'Prioritize' from this list provides a selection list to set the priority. However, this list only contains No Priority (-) plus priorities A-C. When editing an item, there is another priority allowed: D.

Archive completed items to done.txt

Right now when items are completed, an X is prepended to them and they still appear in the list of undone tasks.

Add support for done.txt:

  • Sync done.txt as well as todo.txt on Sync
  • When an item is marked as done in todo.txt, delete it and add it to done.txt and sync both files back to Dropbox

We could also add an "Archive" menu item that does this manually...

New Setting: Automatically prepend date to new tasks

New User Preference: Automatically prepend date to new tasks

In Preferences, add the option checkbox to prepend the date when adding new tasks--should be the same functionality as a -t operator for todo.txt CLI.

If not logged in, show a "Log in to Dropbox" button instead of "No tasks to display"

If not logged in, show a "Log in to Dropbox" button instead of "No tasks to display"

If you're not logged into Dropbox, you can dismiss the Login dialog and wind up at a white screen that just says "No tasks to display." From there you can't add tasks unless you tap sync.

Must add a "Log into Dropbox" button when you are not logged in. If you ARE logged in and there truly are no tasks in the todo.txt file to display, add instructions or a button to Add a task.

Reword task context menu

Reword task context menu

In task context menu, reword all menu items to active voice verbs: 'Mark done', 'Change priority' etc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.