diff --git a/.imdone/config.json b/.imdone/config.json index f1dd8478..1a29f78d 100644 --- a/.imdone/config.json +++ b/.imdone/config.json @@ -37,6 +37,10 @@ { "name": "DOING", "hidden": false + }, + { + "name": "NOTE", + "hidden": false } ], "marked": { diff --git a/.imdoneignore b/.imdoneignore index ea6a56a3..b09d96aa 100644 --- a/.imdoneignore +++ b/.imdoneignore @@ -4,5 +4,6 @@ !test !test/**/* !DoD.md +!README.md test/repos test/files diff --git a/README.md b/README.md index 165aa831..b3a367cf 100644 --- a/README.md +++ b/README.md @@ -1,49 +1,44 @@ -imdone-core -=========== - -[![NPM](https://nodei.co/npm/imdone-core.png)](https://nodei.co/npm/imdone-core/) - +[![npm version](https://badge.fury.io/js/imdone-core.svg)](https://badge.fury.io/js/imdone-core) [![Build Status](https://travis-ci.org/imdone/imdone-core.png?branch=master)](https://travis-ci.org/imdone/imdone-core) [![Downloads](https://img.shields.io/npm/dm/imdone-core.svg)](https://npmjs.org/package/imdone-core) -[![Stories in Ready](https://badge.waffle.io/imdone/imdone-core.png?label=ready&title=Ready)](https://waffle.io/imdone/imdone-core) -**Organize TODO, FIXME, HACK, etc. comments in code or any text file.** +Imdone is text based kanban processor with a simple syntax and model that allows the user to create and modify tasks using the keyboard to improve productivity. -Initializing a Repository ----- -``` -var Repo = require('imdone-core/lib/repository'), - FsStore = require('imdone-core/lib/mixins/repo-watched-fs-store'); + + -var repo = FsStore(new Repo('path/to/my/project')); -repo.on('initialized', function() { - // do something with the repo... - var lists = repo.getLists(); - lists.forEach(function(list) { - var listTasks = repo.getTasksInList(list.name); - }); +- [Imdone format](#imdone-format) + - [Code Style](#code-style) + - [Hash Style](#hash-style) + - [Markdown Style](#markdown-style) +- [Task syntax](#task-syntax) +- [todo.txt syntax](#todotxt-syntax) + - [Create date](#create-date) + - [Completed date](#completed-date) + - [Due Date](#due-date) + - [Tags (todo.txt projects)](#tags-todotxt-projects) + - [Context](#context) + - [Metadata](#metadata) +- [Metadata links](#metadata-links) +- [Resources](#resources) +- [License](#license) - var tasks = repo.getTasks(); -}); + -repo.on('file.update', function(file) { - // Do something usefull -}); - -repo.on('config.update', function() { - // Do something usefull -}); -``` - -Task formats ----- +## 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](https://en.wikipedia.org/wiki/Comment_%28computer_programming%29#Tags) and [todo.txt format](https://github.com/todotxt/todo.txt#todotxt-format). ### Code Style
 // TODO This is a task
 // TODO: This is a task
 // TODO:5 This is a task
+// TODO: A task with a descrption 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 @@ -51,7 +46,16 @@ Task formats #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
@@ -121,19 +125,29 @@ Metadata links
     }
   }
 ```
+
+
+
 
+Resources
+----
+- [Is the keyboard faster than the mouse? | Hacker News](https://news.ycombinator.com/item?id=14544571)
+- [Blog | Personal Kanban](http://personalkanban.com/pk/blog/)
+- [Do TODO comments make sense? - Software Engineering Stack Exchange](https://softwareengineering.stackexchange.com/questions/125320/do-todo-comments-make-sense)
 
 License
 ----
diff --git a/package.json b/package.json
index da7f965d..814a73a9 100644
--- a/package.json
+++ b/package.json
@@ -4,6 +4,7 @@
   "description": "imdone-core",
   "main": "index.js",
   "scripts": {
+    "build": "doctoc --github --notitle README.md && npm test",
     "test": "export NODE_ENV=test && npm run coverage",
     "coverage": "nyc --reporter=lcov --reporter=text --reporter=html mocha",
     "lint": "jshint ./lib"
@@ -42,6 +43,7 @@
     "cheerio": "^1.0.0-rc.2",
     "chokidar": "1.7.0",
     "debug": "^2.2.0",
+    "doctoc": "^1.3.0",
     "ignore": "^3.2.0",
     "isbinaryfile": "^3.0.2",
     "lodash": "2.4.2",
diff --git a/test/file-spec.js b/test/file-spec.js
index c53b4206..4cb70481 100644
--- a/test/file-spec.js
+++ b/test/file-spec.js
@@ -56,8 +56,8 @@ describe('File', function() {
 
       var expectation = sinon.mock();
       file.on("task.found", expectation);
-      expectation.exactly(5);
-      (file.extractTasks().getTasks().length).should.be.exactly(5);
+      expectation.exactly(6);
+      (file.extractTasks().getTasks().length).should.be.exactly(6);
       expectation.verify();
     });
 
diff --git a/test/files/sample.md b/test/files/sample.md
index c671c52f..4d12f580 100644
--- a/test/files/sample.md
+++ b/test/files/sample.md
@@ -3,5 +3,6 @@
 - [task 3](#todo:0)
 - [task 4](#doing:0)
 - Looking for #doing:0 A new task
-
-
+