[![Build Status](https://github.com/imdone/imdone-core/actions/workflows/ci.yml/badge.svg)
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 or use the cli to see your projects board and this library in action.
![imdone-screenshot.png (5120×2838)](https://imdone.io/docs/images/card-anatomy.png)
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-_]+?).
- Only code style tasks can be used in code files and 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
- 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.
- 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
License
MIT