Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/byteclubfr/todotxt
Todo.txt parser/serializer for node
https://github.com/byteclubfr/todotxt
Last synced: 1 day ago
JSON representation
Todo.txt parser/serializer for node
- Host: GitHub
- URL: https://github.com/byteclubfr/todotxt
- Owner: byteclubfr
- License: isc
- Created: 2015-03-19T16:08:11.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-03-21T19:59:18.000Z (over 6 years ago)
- Last Synced: 2024-04-25T20:20:40.310Z (7 months ago)
- Language: JavaScript
- Size: 8.79 KB
- Stars: 6
- Watchers: 3
- Forks: 4
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://img.shields.io/travis/byteclubfr/todotxt/master.svg?style=flat)](https://travis-ci.org/lmtm/todotxt)
[![Dependency Status](https://david-dm.org/byteclubfr/todotxt.svg?style=flat)](https://david-dm.org/lmtm/todotxt)
[![devDependency Status](https://david-dm.org/byteclubfr/todotxt/dev-status.svg?style=flat)](https://david-dm.org/lmtm/todotxt#info=devDependencies)# TodoTxt
[Todo.txt](http://todotxt.com) parser/serializer for Node and io.js.
## API
```js
// npm install --save todotxtvar todotxt = require("todotxt");
todotxt.parse("string or buffer"); // -> [items]
todotxt.stringify([items] or item); // -> string
todotxt.item(properties); // item
```## Sample usage
### Parse file
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
``````js
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
```### Stringify items
```js
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 +Project2015-03-20 Another task @SomeContext
```