Todolist — быстрый консольный менеджер задач в концепции GTD на Golang

Todolist - быстрый консольный менеджер задач в концепции GTD на Golang
Todolist помогает работать с вашими задачами в терминале. Todolist основан на методе Getting Things Done и умеет работать с проектами, контекстами и сроками задач.

Списки задач зависят от директории, в которой вы работаете с ними — просто держите разные списки дел в разных папках.

Todolist - быстрый консольный менеджер задач в концепции GTD на Golang

Установка

Выберите любой удобный способ:

  • brew install todolist — если у вас есть OSX с установленным homebrew.
  • Скачайте последний релиз для вашей платформы и скопируйте исполняемый файл todolist в любое место в $PATH.
  • Если у вас установлен Golang, запустите команду go get github.com/gammons/todolist.
Быстрый старт

1: Создадим репозиторий todos
Запустите todolist init для создания списка задач в файле .todos.json в текущей директории.

~ todolist init
Todo repo initialized.

2: Добавим несколько задач
Добавить задачу можно командой add или a:

~ todolist add Chat with @bob about +currentProject due tom
Todo added.
~ todolist a +devops update my master password due fri
Todo added.

3: Список задач
Это сердце всей системы. Вы можете фильтровать и группировать ваши задачи. А если встроенная фильтрация не отвечает вашим нуждам, вы даже можете передать вывод в grep!

~ todolist list
all
1 [ ] tomorrow Talk with @bob about the +bigProject
2 [ ] Fri May 13 +devops update my master password

todolist list принимает разные аргументы. Можно отобрать задачи по срокам:

~ todolist list due tom
all
1 [ ] tomorrow Talk with @bob about the +bigProject

Можно сгруппировать по проекту или контексту.

~ todolist list by project

bigProject
1 [ ] tomorrow Talk with @bob about the +bigProject

devops
2 [ ] Fri May 13 +devops update my master password

4: Завершить задачу
Пометить задачу как выполненную можно командой todolist complete или todolist c.

~ todolist complete 1
Todo completed.
~ todolist c 2
Todo completed.

Теперь при выводе списка задач, вы увидите, что все они выполнены:

~ todolist list
all
1 [x] tomorrow Talk with @bob about the +bigProject
2 [x] Fri May 13 +devops update my master password

5: Архивировать выполненные задачи
После выполнения задач, вы можете заархивировать их, чтобы они не отображались при выводе списка.

Вы можете заархивировать каждую задачу индивидуально командой todolist ar [id], но так как у нас сегодня много выполненных задач, мы можем запустить todolist ac, которая отправить в архив все выполненные задачи.

~ todolist ac
All completed todos archived.

Вот и всё! Теперь вы знаете 90{33d8302486bd10b0fde64d2037652320e6f176a736d71849c0427b0d7398501a} функционала Todolist.

Рабочий процесс

Задачи могут принимать 3 состояния:

  • Incomplete — Незавершённые задачи
  • Complete — Завершённые задачи
  • Archived — Архивированные задачи, они не выводятся в списке задач и увидеть их можно командой todolist list archived.

Обычно мы создаём задачу, завершаем её, затем архивируем в конце дня.

Добавление задач

Задачи добавляются командой todolist add или todolist a, затем можно заполнить детали задачи.

  • +проекты и @контексты можно вставлять в текст задачи.
  • Нужно обязательно указать срок в конце задачи (due date).

Формат Due date

  • Для сегодняшних или завтрашних задач вы можете указывать due today и due tomorrow. Или сокращённые команды due tod или due tom.
  • Для задач со сроком в течение текущей недели можно писать первые 3 буквы дня (на англ.яз.). Например, due mon или due thu. Todolist всегда ищет дни в будущем, поэтому если сегодня Среда, а вы задали due mon, то срок задачи будет в следующий Понедельник.
  • Для указания определённой даты можно указать due may 2 или due 2 may. Месяц должен быть написан в нижнем регистре тремя буквами.

Примеры:

~ todolist a update the staging db with @frank due tom
Todo added.
~ todolist a @pomodoro I need to think about our job tier structure due wed
Todo added.
~ todolist a meet with @jake and @adrian about the +importImprovement project due jun 23
Todo added.
~ todolist l

1 [ ] tomorrow update the staging db with @frank
2 [ ] Wed Jun 22 @pomodoro I need to think about our job tier structure
3 [ ] Thu Jun 23 meet with @jake and @adrian about the +importImprovement project

Завершение задач и возврат к невыполненным

todolist complete [id] или todolist c [id] — завершает задачу с указанным номером.

todolist uncomplete [id] или todolist uc [id] — помечает задачу как невыполненную.

Архивация и возврат из архива

todolist archive [id] или todolist ar [id] — помещает задачу в архив.

todolist unarchive [id] — возвращает задачу из архива.

Вывод списка, фильтрация и группировка задач

todolist list или todolist l — список всех незаархивированных задач

todolist l archived — список задач в архиве

Внимание: по-умолчанию, Todolist всегда скрывает архивированные задачи. Увидеть их вы можете только командой todo list archived.

Отбор по сроку
todolist l agenda — Список задач на сегодня + просроченные

todolist l overdue — Список просроченных задач

todolist l due today или todo l due tod — Список задач на сегодня

todolist l due tomorrow или todo l due tom — Список задач на завтра

Отбор по дню недели
todolist l due mon — Список задач на Понедельник

todolist l due this week — Список задач на всю неделю

Группировка
Задачи можно сгруппировать по проекту или контексту.

todolist l by p — Список задач, сгруппированных по проекту

todolist l by c — Список задач, сгруппированных по контексту

Редактирование задач

Пока Todolist позволяет редактировать только срок задачи. Для полного редактирования задачи лучше удалить её и создать заново.

todolist e [id] due [due] — редактирует срок задачи.

Примеры:

  • todolist e 133 due tod — редактируем задачу с номером 133 и задаём срок на сегодня.
  • todolist e 56 due jun 20 — редактируем задачу с номером 56 и задаём срок на 20 июня.
Expanding existing todos

Todolist поддерживает расширение существующих списков задач с добавлением недостающих деталей. Синтаксис такой:

todolist ex [id] +[project]: todo1[,todo2…]

Если в списке есть такая задача:


13 [ ] Sat Jan 28 Write the thesis

Попробуем расширить её, добавив деталей:

  • todolist ex 13 +thesis: get latex template due Jan 22, meet prof. due Jan 23, organize data due Jan 24, Introduction and Abstract due Jan 27

Список станет таким:


14 [ ] Sun Jan 22 get latex template
15 [ ] Mon Jan 23 meet prof.
16 [ ] Tue Jan 24 organize data
17 [ ] Wed Jan 25 Introduction and Abstract

Удаление задач

todolist delete [id] или todolist d [id].

Web-представление

todolist web
Todolist - быстрый консольный менеджер задач в концепции GTD на Golang

Эта команда запустит лёгкий веб-сервер по адресу http://localhost:7890, где вы можете управлять своими задачами в красивом представлении.

Демо-версию можно посмотреть здесь.

Формат файла .todos.json

В .todos.json в очень простом формате хранятся все задачи из текущей директории. Пример файла .todos.json:

[{
"id": 110,
"subject": "+toVerify did @scott put zuora alerting in place?",
"projects": [
"toVerify"
],
"contexts": [
"scott"
],
"due": "2016-05-23",
"completed": false,
"archived": false
}]

Заключение

Я обожаю утилиты, соответствующие философии Unix. Будучи уверенным пользователем Wunderlist, я планировал переписать 30{33d8302486bd10b0fde64d2037652320e6f176a736d71849c0427b0d7398501a} возможностей Wunderlist, оставив только те, которые я использовал, в простой консольной утилите.

Чем это отличается от todo.txt?
todo.txt это превосходный инструмент с великолепной экосистемой, но он мне не подошёл. Мне нужны были даты в задачах и некоторые другие параметры, а по-умолчанию в todo.txt не было такого функционала. Я верю в то, что Todolist концептуально ближе к тому, как «крупные» todo-компании делают это, например, Wunderlist, Todoist и т.д.

Источник

Leave a Comment