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% функционала 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% возможностей Wunderlist, оставив только те, которые я использовал, в простой консольной утилите.

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

Источник
1 комментарий
IgorKroupenkov
Работаю с taskwarrior, попробую вашу систему отпишусь.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.