Todo.txt parser/serializer for Node and io.js.
// npm install --save todotxt
var todotxt = require("todotxt");
todotxt.parse("string or buffer"); // -> [items]
todotxt.stringify([items] or item); // -> string
todotxt.item(properties); // item
sample todo:
Hello @Home @Alone
Hello (2)
Hello (again) @Home +Project1 +Project2
First task
x 2015-03-19 Second task
(A) Third task
2015-03-17 another task
var items = todotxt.parse(fs.readFileSync("./todo.txt"));
items.forEach(function (item) {
if (!item) {
console.log(" // deleted task");
} else if (item.complete) {
console.log("[x] Complete task:", item.text);
} else {
console.log("[ ] Incomplete task:", item.text);
}
});
output:
[ ] Incomplete task: Hello @Home @Alone
[ ] Incomplete task: Hello (2)
// deleted task
[ ] Incomplete task: Hello (again) @Home +Project1 +Project2
// deleted task
[ ] Incomplete task: First task
[x] Complete task: Second task
[ ] Incomplete task: Third task
[ ] Incomplete task: another task
var items = [
todotxt.item({
text: "Hello +Project",
complete: true
}),
null,
todotxt.item({
text: "Another task"
})
];
// You can modify items
items[1].addContext("SomeContext");
items[1].date = new Date("2015-03-20");
console.log(todotxt.stringify(items));
output:
x Hello +Project
2015-03-20 Another task @SomeContext