Todo (TodoTxt v0.1.0) View Source
Struct and functions for operating on ToDos
Link to this section Summary
Functions
parse parses a raw todo string into a Todo struct
converts a Todo struct into a string that would be found in a todo.txt file.
Link to this section Functions
parse parses a raw todo string into a Todo struct
Examples
iex> Todo.parse("x done")
%Todo{description: "done", done: true}
iex> Todo.parse("x 2020-09-13 done")
%Todo{description: "done", done: true, completion_date: ~D[2020-09-13]}
iex> Todo.parse("(A) top priority")
%Todo{description: "top priority", priority: :A }
iex> Todo.parse("todo with @Context1 and @Context_2")
%Todo{description: "todo with @Context1 and @Context_2", contexts: [:Context1, :Context_2]}
iex> Todo.parse("todo with +Project_1 and +project2")
%Todo{description: "todo with +Project_1 and +project2", projects: [:Project_1, :project2]}
iex> Todo.parse("todo 2020-10-15 with due:2021-09-13")
%Todo{description: "todo 2020-10-15 with", due_date: ~D[2021-09-13]}
iex> Todo.parse("2020-10-15 task due:2021-09-13")
%Todo{description: "task", creation_date: ~D[2020-10-15], due_date: ~D[2021-09-13]}
iex> Todo.parse("task meta:data meta1:data1")
%Todo{description: "task", additional_fields: %{"meta" => "data", "meta1" => "data1"}}
iex> Todo.parse("task due:2021-09-13 meta:data meta1:data1")
%Todo{description: "task", additional_fields: %{"meta" => "data", "meta1" => "data1"}, due_date: ~D[2021-09-13]}
converts a Todo struct into a string that would be found in a todo.txt file.
Examples
iex> Todo.to_string(%Todo{description: "done", done: true})
"x done"
iex> Todo.to_string(%Todo{description: "done on time", done: true, completion_date: ~D[2020-09-13]})
"x 2020-09-13 done on time"
iex> Todo.to_string(%Todo{description: "top priority", priority: :A })
"(A) top priority"
iex> Todo.to_string(%Todo{description: "context task: @context1", contexts: [:context1, :context2] })
"context task: @context1 @context2"
iex> Todo.to_string(%Todo{description: "project task: +project1", projects: [:project1, :project2] })
"project task: +project1 +project2"
iex> Todo.to_string(%Todo{description: "created on time", creation_date: ~D[2021-09-13]})
"2021-09-13 created on time"
iex> Todo.to_string(%Todo{description: "done on time", done: true, completion_date: ~D[2020-09-13], creation_date: ~D[2020-09-12]})
"x 2020-09-13 2020-09-12 done on time"
iex> Todo.to_string(%Todo{description: "due on time", due_date: ~D[2021-09-13]})
"due on time due:2021-09-13"
iex> Todo.to_string(%Todo{description: "additional fields task", additional_fields: %{"key1" => "value1", "key2" => "value2"}})
"additional fields task key1:value1 key2:value2"
iex> Todo.to_string(%Todo{description: "pomodoro task", pomodori: {1, 3}})
"pomodoro task (#pomo: 1/3)"