Permalink
Browse files

Waterfall

* Improved documentation
* Split code into smaller pieces
* Removed some unused code
* Made the syntax more in line with the community standard
  • Loading branch information...
1 parent 0cb51b2 commit 88d01b41ded5182329b59b77275b9d95a2a72a72 @hkjels committed Mar 1, 2013
Showing with 753 additions and 613 deletions.
  1. +4 −29 Makefile
  2. +152 −24 Readme.md
  3. +0 −2 Taskpool.md
  4. +93 −78 bin/t
  5. +15 −0 docs/01-Intro.md
  6. +17 −0 docs/02-Getting-started.md
  7. +65 −0 docs/03-Syntax.md
  8. +11 −24 docs/{find.md → 04-Find.md}
  9. +8 −0 docs/05-Future.md
  10. +13 −0 docs/09-Contributing.md
  11. +26 −0 docs/10-License.md
  12. +0 −75 docs/index.md
  13. +1 −1 docs/layout/head.html
  14. +0 −42 docs/syntax.md
  15. +19 −28 lib/compare.js
  16. +15 −162 lib/dive.js
  17. +9 −6 lib/ntask.js
  18. +142 −0 lib/pluck.js
  19. +70 −64 lib/pool.js
  20. +30 −26 lib/project.js
  21. +35 −26 lib/query.js
  22. +27 −26 lib/task.js
  23. +1 −0 package.json
View
@@ -1,46 +1,21 @@
-.PHONY: all test lint docs clean mocha with cream and sugar
# Paths
BIN = node_modules/.bin
-DOCSRC = $(shell find docs -name '*.md')
-DOCTRG = $(DOCSRC:.md=.html)
-# I love it when 'all' is true
-
-all:
- @true
-
test:
@$(BIN)/mocha --growl --reporter 'dot' --require should ./test/*.test.js
-lint:
- @$(BIN)/jshint ./lib/*.js
-
-docs: $(DOCTRG)
+docs: Readme.md
clean:
rm -f $(DOCTRG)
-%.html: %.md
- @echo "... $< -> $@"
- @markdown $< \
- | cat docs/layout/head.html - docs/layout/foot.html \
- > $@
-
-
-# Aliases
-
-mocha: test
-
-with:
- @true
-cream: lint
+Readme.md: docs/*.md
+ @cat $^ > $@
-and:
- @true
-sugar: docs
+.PHONY: test docs clean
View
@@ -1,47 +1,174 @@
-ntask
-=====
-### Taskmanagement, your way!
-![Still maintained](http://stillmaintained.com/stillmaintained/stillmaintained.png "Still maintained")
+# ntask
-__Main goal is to make your inline-todos more useful. This is achieved by
-giving your task labels; With labels you can easily sort and filter your tasks
-by priority, date and so on. The output should be friendly towards other
-issue-trackers, so one does not exclude the other.__
+__Taskmanagement, your way!__
-## Installation
+Ntask supports sorting and filtering of TODO-comments from your source-code
+in such a way that only reg-ex elitists would be able to do in a snap.
-Make sure you install __ntask__ globally "__-g__"
+***
- λ npm install -g ntask
+### Installation
+
+ λ npm install ntask -g
## Getting started
-Start tracking a project
+First you need to tell ntask to start tracking your project.
+
+ λ t init .
+
+Ones tracking is set up you can refresh the index by issuing `update`.
+__Tip: Do atomic updates by having your editor issue the update-
+command on the current file, post save.__
+
+ λ t update .
+
+Go ahead and issue the tracker for tasks.
+
+ λ t find ""
+
+
+## Syntax
+
+Traditional [FIXME-comments](http://www.riedquat.de/TR/trunk/TODO_Syntax/)
+are supported, however I'd recommend ntask's own syntax. The latter is not
+as strict, it resembles the syntax of a tweet and it offers more granulated
+searches with filtering and sorting.
+
+
+### Example tasks
+
+* OPTIMIZE #refactor like a boss
+* BUG @frontend mouse-event does not bubble to the top
+* REVIEW @john I believe the #lexer is ready for production
+ | I started with failing tests and ended up with 100%
+ | test-coverage. Just wanted to make sure your happy
+ | with the #benchmarks.
+
+So what's interesting here?
+
+Well, you can see that one might use groups as assignee, making
+it well tuned to agile teams. Titles does not have to be as
+thoroughly thought of, as you can place the task alongside the
+actual code. And finally, you can write as in-depth as you so
+please by prefixing following lines with a pipe.
+
+
+### Keywords
+
+The point of entry for ntask is finding keywords in your source-code. Ntask
+supports the keywords listed below.
+
+* TODO
+* DONE
+* BUG
+* FIXME
+* OPTIMIZE
+* XXX
+* REVIEW
+
+
+### Assignee
+
+Adding an assignee to a task is done using the "@"-character as prefix of a
+string. Tasks without an explicitly set assignee will retrieve the assignee
+"@none", also aliased to "@unassigned".
+
+
+### Labels
+
+Labels are prefixed with the "#"-character, they can be searched for,
+sorted by or even filtered upon. A label can contain a scalar value by
+surrounding it with brackets.
+Ex: pri[2]
- λ cd <projectdir>
- λ t init
-Update taskpool
+### Title
- λ t update .
+For a task to be added, it has to validate. A valid task has a title of at
+least five characters and a keyword.
-Find tasks
+__PS.__ _Labels and assignee does not count as being part of the title as
+these can shift within the lifespan of a task._
- λ t find ""
-## Features
+## Find
-* Flexible search-syntax
-* Compatible with github-issues
-* ~~Web interface~~
+__The power of ntask´s find-command is what really makes ntask shine.__
+***
-## Constributors
+### @Assignee
+Prefix your name with an "@"-symbol and you'll get a list of tasks sorted
+by date, that are yours.
+
+ t find "@$(whoami)"
+
+Tasks that are not assigned to anyone specific will land under the assignee
+@none. This means you can easily manage a taskpool by just querying:
+
+ t find "@none"
+
+__You can also use the alias @unassigned.__
+
+***
+
+### Labels
+
+Labels come in two forms. The keyword that the task was prefixed with
+(TODO | OPTIMIZE | BUG | FIXME) and words starting with a hash-symbol. The
+latter can also have brackets that store a scalar value. This value can be
+filtered and sorted upon.
+
+ t find "#pri[>3]*"
+
+In the example above I have suffixed the label with an asterix, that selects
+the label for sorting. This is useful in conjunction with the --reverse flag
+for ascending sorts. You can also see that there's filtering being done here
+using brackets, so "pri"-labels with a numeric value of less than three will
+not be displayed.
+
+***
+
+### Options
+
+ -f, --format [string]
+
+ The format-string is a sprintf-like implementation of all the
+ properties of a task.
+
+ %A - Assignee
+ %B - Body
+ %H - Label (#hash)
+ %I - Id
+ %K - Keyword
+ %L - Line
+ %T - Title
+
+ -r, --reverse
+
+
+## Future of ntask
+
+I'd like to make ntask compatible with other issue-trackers like github,
+asana and jira. We should have some recipes for use with version control.
+Like commit-message from ntask and perhaps automatic tweets upon major-
+releases and such.
+
+
+## Contributing
+
+Please feel free to drop me an email with suggestions or even better, nag
+me with pull-requests.
+
+### Constributors
+
+* Your name should be here
* Henrik Kjelsberg <hkjels@me.com>
[github](http://github.com/hkjels/ "Github account")
[website](http://take.no/ "Development blog")
@@ -51,7 +178,7 @@ Find tasks
> (The MIT License)
>
-> Copyright (c) 2012 Henrik Kjelsberg &lt;hkjels@me.com&gt;
+> Copyright (c) 2013 Henrik Kjelsberg &lt;hkjels@me.com&gt;
>
> Permission is hereby granted, free of charge, to any person obtaining
> a copy of this software and associated documentation files (the
@@ -71,3 +198,4 @@ Find tasks
> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
View
@@ -20,8 +20,6 @@ __Tip: Create a taskpool similar to this one at the root of your project for rap
| (CLOSE|CLOSES|CLOSED|FIXES|FIXED)
| or by querying for tasks with a remove-flag
-* TODO Add stemming for improved fulltext searches
-
* TODO Add `-m, --mine` support
Oops, something went wrong.

0 comments on commit 88d01b4

Please sign in to comment.