imdone-core
imdone-core copied to clipboard
Text based kanban processor
Imdone is text based kanban processor with a simple syntax that uses comment tags like TODO and FIXME and todo.txt format. This model allows the user to create and modify tasks using the keyboard and automatically establishes a link between their tasks and work. Get imdone to see your projects board and this library in action.
-
Imdone format
- Code Style
- Hash Style
- Markdown Style
- Task syntax
- Task Descriptions
-
todo.txt syntax examples
- Create date
- Completed date
- Due Date
- Tags (todo.txt projects)
- Context
-
Metadata
- Metadata links
-
Node.js API
- Generated Docs
- Examples
-
Contributing
- Build and Test
- FAQs and BUGs
- Events
- Resources
- License
Imdone format
Imdone aims to keep you in the flow of your work while capturing tasks to be accomplished later. Most kanban tools require the user to use a UI. Imdone lets you capture tasks in a simple text format that has roots in programming comment tags like TODO and FIXME and todo.txt format.
Code Style
// TODO This is a task // TODO: This is a task // TODO:5 This is a task // TODO: A task with a description looks like this. // Every line after the task is part of the description until we find another // task, a blank comment line, or a line of code // - A list item // - Another list item
Hash Style
#TODO: This is a task #TODO:0 This is a task #to-do:0 This is a task <!-- #TODO: If you don't want your task to get converted to html in markdown files, put it in a comment. You can still add descriptive text, but don't forget to leave a blank line between the description and the comment end tag, or the comment end will become a part of your description. -->
Take a look at the source of this README.md. You'll probably find a few tasks in comments.
Markdown Style
[This is a task](#todo:) [This is a task](#todo:10)
Task syntax
- Code style tasks will only be detected if the list name matches a string in the
code.include_lists
attribute in.imdone/config.yml
and the file extension exists in lib/languages.js. - List names in code style tasks must match this regular expression ([A-Z]+[A-Z-_]+?).
- In Hash and markdown style tasks list name can be any combination of upper and lower case letters, underscores and dashes
- In Hash and markdown style tasks the list name must be followed by a
:
and a number which determines sort order in the list- Sort numbers can be reused, in which case tasks with the same sort number will be sorted alphabetically by text.
- In code, tasks can be any style but must be in a line or block comment
- Code style tasks are only detected in comments for files with extensions listed in imdone-core/languages.js or the languages attribute in the
.imdone/config.yml
- Code style tasks are only detected in comments for files with extensions listed in imdone-core/languages.js or the languages attribute in the
- For code and hash style tasks, the task text is terminated by the end of line
- Task text can have todo.txt formatting excluding the completion and priority markers.
- Task text can have markdown formatting
todo.txt syntax examples
Imdone uses todo.txt +project/tag @context and meta:data
Create date
#DOING:20 This task was created on 2018-02-09 created:2018-02-09
Completed date
#DOING:20 This task was completed on 2018-02-09 completed:2018-02-09
Due Date
#doing:20 This task is due on 2015-02-09 due:2015-02-09
Tags (todo.txt projects)
#doing:20 This task has a *madjs* tag +madjs
Context
#doing:20 This task has a *madjs* context @madjs
Metadata
#doing:20 This task has profile metadata profile:piascikj
Metadata links
- Tasks with metadata can be linked to external resources like other task mgmt systems and websites
- Add a
meta
attribute to.imdone/config.yml
- In this example
user:piascikj
would link to https://github.com/piascikj
"meta": {
"user": {
"urlTemplate": "https://github.com/%s",
"titleTemplate": "github profile for %s"
}
}
Events
- task.found
- task.deleted
- file.modified
- initialized
- file.processed
- file.update
- file.empty
- file.read
- file.reading
- files.found
- files.saved
- config.update
- list.found
- list.modified
- tasks.moved
- tasks.updated
- error
- config.loaded
Resources
- Using TODO Comments to Keep You Programming in the Zone
- 5 ways using TODO comments will make you a better programmer
- I Still Use Plain Text for Everything, and I Love It
- Why Geeks Love Plain Text (And Why You Should Too)
- The Benefits of Using Plain Text | Terminally Incoherent
- The future of education is plain text · Simply Statistics
- Derry Birkett › Plain text is the best UX
- Tools – The Plain Text Project
- The Plain Text Workflow · Richard A. Lent, Ph.D.
- My Plain Text Workflow – Doyce Testerman
- Word Processors: Stupid and Inefficient
- Is the keyboard faster than the mouse? | Hacker News
- Blog | Personal Kanban
- Do TODO comments make sense? - Software Engineering Stack Exchange
License
MIT