README.md

# TodoTxt
An Elixir library for reading/parseing/writing todo.txt files

## About Todo.txt
More information about todo.txt can be found at:
  - [Overview](https://github.com/todotxt/todo.txt)
  - [Homepage](http://todotxt.org/)
  - [cli](https://github.com/todotxt/todo.txt-cli)

## Installation

This package can be installed
by adding `todo_txt` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:todo_txt, "~> 0.1.0"}
  ]
end

```

## Basic Usage

### Read Todos From todo.txt File

```elixir
todos = 
  File.read!("todo.txt") 
  |> String.split("\n") 
  |> Enum.map(&Todo.parse/1)
```

### Write Todos To todo.txt File

```elixir
to_write = 
  todos 
  |> Enum.map(&Todo.to_string/1) 
  |> Enum.join("\n")

File.write!("todo.txt.diff", to_write)
```

### Remove Done Todos From todo.txt And Archive Them In done.txt File
```elixir
todos = File.read!("todo.txt") |> String.split("\n") |> Enum.map(&Todo.parse/1)
{done, todo} = Enum.split_with(todos, fn t -> t.done end)

File.write!("todo.txt", Enum.join(Enum.map(todo, &Todo.to_string/1), "\n"))
File.write!("done.txt", Enum.join(Enum.map(done, &Todo.to_string/1), "\n"))
```