Добавить в корзинуПозвонить
Найти в Дзене
Вадыч пишет

Obsidian как todo

Как настроить Obsidian для управления списка задач.
Оглавление

Рад всех снова приветствовать на моем канале.

Я встречал много разных вариаций, как можно использовать Obsidian как менеджер задач и решил предложить вам свое видение. Сразу хочу сделать 2 оговорки.

1. Данный метод будет работать только с версии 0.10.2

2. Я не считаю хорошей идеей вести задачи в Obsidian. Все же для меня это больше инструмент управления знаниями. А комбайн, по моему мнению, это всегда хуже, чем специализированные инструменты. Почему же я решил написать эту статью, отвечу в конце.

Но тем не менее, давайте начнем.

Постановка задачи

Важно понять, что мы хотим в итоге построить. Для меня любой менеджер задач обладать тремя обязательными списками.

1. Сегодня - как не трудно догадаться, это список задач, запланированных на сегодня.

2. Следующие действия - список задач, которые не привязаны к конкретной дате, но которые мы твердо решили выполнить. Часто в этом списке оказываются очень важные, но не срочные задачи, которые продвигают нас к нашим целям

3. Не запланированные задачи или когда-нибудь - список задач, которые мы вроде хотели бы сделать, а вроде и нет. Просто записали, чтобы не забыть.

Поскольку Obsidian основан на текстовой разметке, нам не избежать правил, о которых стоит договориться в начале.

1. Задачу мы будем отмечать так, как это принято в Markdown `-[ ]`. В любой строке можно нажать Ctrl+Enter и строка станет не выполненной задачей.

2. В строке может быть тег `Next` - так мы будем помечать следующие действия.

3. Дату выполнения мы будем ставить в той же строке в формате ГГГГ-ММ-ДД. Например, так 2020-12-23. Это дата написания этой статьи.

Таким образом ввод задачи будет выглядеть так.

1. Жмем Ctrl+Enter

2. Пишем, что нужно сделать

3. В конце при желании добавляем тег Next и дату завершения.

4. Как выполнили задачу, опять жмем Ctrl+Enter и Obsidian любезно поставит крестик

Вроде мы определились с тем, чего хотим. Давайте приступать.

Реализация

Систему мы построим на 2 возможностях Obsidian.

1. Встраивание результатов запроса в заметку

2. Умению создавать ежедневные заметки по определенному шаблону. Можно обойтись и без этого, но тогда придется ручками каждый день менять запрос для списка сегодня. Это не наш путь.

Проектируем запросы

Для начала давайте спроектируем запросы для всех наших трех списков.

Тут мне пришлось немного повозиться и научиться пользоваться регулярными выражениями. Это оказался единственный способ, чтобы заставить поиск учитывать нахождение основных элементов в пределах строки, а не по всей заметке. Если знаете более простой путь - подскажите в комментариях.

Сегодня

Нам нужно отобрать все незавершенные задачи, у которых стоит дата сегодня. Сделать это можно с помощью следующей поисковой строки:

/ \[ \] .*2020-12-23/

Тут все достаточно просто. Ищем строки, в которые входят одновременно `[ ]` и дата.

Следующие действия

Делаем по аналогии со списком сегодня. Ищем строки с `[ ]` и тегом Next

/ \[ \] .*#Next/

А тут я столкнулся с неожиданностью. Дзен заменяет решетку на свою непонятную звездочку. Поэтому просто, поменяйте звездочку опять на решетку

Когда-нибудь

Тут запрос посложней. Нам нужно отобрать строки, в которых есть `[ ]` и нет ни нашего тега, ни даты. Этот запрос заставил меня долго попотеть, но в я все же нашел решение

/^(?!.*#Next)^(?!.*\d\d\d\d-\d\d-\d\d).* \[ \] /

Не спрашивайте, как он работает. Сам не до конца понимаю. Но тем не менее этот запрос отсеивает строки с тегом и конструкцией вида ГГГГ-ММ-ДД

Все, запросы готовы, осталось все это завести в систему и протестировать.

Строим систему.

Для начала нам нужно создать папку, где у нас будут храниться шаблоны.

После этого в новой папке создаем заметку "Шаблон сегодня" и вводим туда следующий текст:

# Список задач на {{date:YYYY-MM-DD}}
# Задачи на сегодня
```query
/ \[ \] .*{{date:YYYY-MM-DD}}/
```
# Следующие действия
```query
/ \[ \] .*#Next/
```

Это будет основа для наших ежедневных заметок. Я решил включить в одну заметку и сегодняшние задачи, и список следующих действий. Оба эти списка скорее всего нужны будут нам ежедневно. А вот список когда-нибудь сделаем отдельно.

Создаем в основном хранилище заметку, называем ее "Когда-нибудь" и вводим туда следующий текст:

# Когда-нибудь
``` query
/^(?!.*#Next)^(?!.*\d\d\d\d-\d\d-\d\d).* \[ \] /
```

В итоге у нас должно получиться что-то типа такого

Текст на скриншоте немного отличается от приведенного выше. Спасибо яндексу за форматирование
Текст на скриншоте немного отличается от приведенного выше. Спасибо яндексу за форматирование

Заготовки сделаны, остались последние штрихи.

Идем в настройки, там выбираем раздел Основные плагины и включаем два из них - Ежедневные заметки и Шаблоны

После этого у нас должны появится два раздела с тем же именем

-2

Идем в раздел "Шаблоны" и выбираем путь к папке с шаблонами. Задаем там ту папку, где у нас лежит "Шаблон сегодня".

Так же важно проверить, чтобы формат даты был YYYY-MM-DD

-3

Далее идем в раздел "Ежедневные заметки" и задаем расположение файла шаблона. Это наш "Шаблон сегодня"

-4

Тут так же можно задать папку, куда будут складываться наши ежедневные заметки. Я решил, пусть это будет корневая. Но на деле рекомендую ежедневные заметки складывать в отдельную папку.

Все, настройка готова, можно тестировать.

Я завел два проекта и добавил в них немного задач

-5

В итоге у нас есть 1 задача на сегодня, 1 на завтра, 2 следующих действия и 2 задачи на когда-нибудь.

Создаем сегодняшнюю заметку, нажав на календарь в левой панели и получаем заметку на сегодня. Перейдя в режим просмотра можем наслаждаться нашим списком

-6

Все сработало как надо. У нас 1 задача на сегодня и по 2 в следующих действиях и когда-нибудь. Щелкнув по строке с задачей, мы перейдем в заметку нужного проекта и попадем сразу на нужную строку. Отметив задачу выполненной, мы сразу увидим это в нашем списке.

-7

Можно начинать работать.

К чему это все было написано

Как я уже говорил, я не считаю Obsidian хорошим местом для ведения списка задач. Я просто хотел продемонстрировать подход к проектированию и построению своей системы. Мы сначала решаем, что нам нужно и как мы будем этим пользоваться. А потом уже реализуем систему, заточенную под наши нужды.

Нет смысла искать и строить какой-либо инструментарий, пока вы не решили, а как вы им будете пользоваться и что вам от него нужно. Но хочу предостеречь от излишнего перфекционизма. Искать идеал можно, но не слишком долго.

Успехов в построении своей базы и до новых встреч!

Подписывайтесь на канал в Телеграмме и заходите в чат.