
Obsidian: Шаблоны
В этой статье я расскажу про то, как можно автоматизировать некоторые задачи с помощью встроенного плагина Шаблоны
и подготовлю себя и вас к самому крупному и исчерпывающему руководству по плагину Templater
, который я выпущу следующей публикацией.
Реклама

Слова благодарности
Перед тем как перейти к моим наблюдениям о том, как устроены шаблоны в Obsidian хочу поблагодарить всех тех, кто прочел мою предыдущую статью, посвященную визуальному оформлению заметок в Obsidian и тем, кто поучаствовал в обсуждении. Мне правда очень приятно осознавать, что те знания, которыми я обладаю - могут помочь кому-то еще.
Автоматизация заметок с помощью шаблонов
Одно из немногих направлений, в которых Obsidian действительно силён и может оказаться по-настоящему полезным — это возможность настраивать и переиспользовать собственные "компоненты". Тут попрошу не ругаться, но когда я задумался о том, что такое шаблоны в Obsidian, то пришел к выводу, что компоненты описывают это лучше всего. Сейчас объясню:
- мы можем настроить переиспользование определенной информации как с учетом динамических данных, так и без (в шаблонизаторе
Jinja2
это называется макросом, а вVue JS
это компонент); - мы можем внедрять в шаблоны так называемую «бизнес-логику» (если избегать путаницы, давайте договоримся, что в данном контексте под этим будем понимать повседневные задачи, которые мы решаем в своих хранилищах), вплоть до управления данными: удаление заметок и директорий, настройка планировщиков, взаимодействие с внешними API и многое другое;
- мы можем тесно интегрироваться как со встроенными, так и со сторонними плагинами. Более того, некоторые плагины изначально предполагают, что пользователь будет взаимодействовать с ними именно через шаблоны (например ModalForms).
Наверняка я упустил некоторые признаки, которые также помогли бы в обосновании почему шаблоны в Obsidian можно называть компонентами, но, надеюсь, что и так сейчас стало немного более понятно, о чем пойдет речь в этой статье и моем отношении к происходящему.
Когда мне впервые понадобилось создать свой шаблон, я, не задумываясь, обратился к GPT с просьбой «сделать всё за меня». Он, конечно, справился — но понимания у меня от этого не прибавилось, а сгенерированный код оказался, как я позже понял, довольно посредственным. Да и сам процесс можно было реализовать куда проще.
Какие виды шаблонов бывают?
Мне известны два способа создать собственные шаблоны:
Встроенный плагин "Шаблоны"
Возможности этого плагина просты до безобразия, но а разве все полезное должно быть сложным? Не буду лукавить и соглашусь с тем, что в нем нет того функционала, который может закрывать более сложные/осознанные задачи, но для ведения "регулярных заметок" этого может быть более чем предостаточно.
Я не фанат привычек и не гонюсь за продуктивностью, могу рашить проекты за день/два или тупить неделями над минимальным функционалом, но мне стало интересно отследить в течение месяца объем всего, что я закрываю по-факту.
В каждой своей статье я повторяю, что не нужно гнаться за избыточным функционалом или возлагать "сверхответственность" на Obsidian, поэтому для этого эксперимента я буду использовать именно встроенный плагин
Шаблоны
, а неTemplater
.
Документация
Не стоит пренебрегать официальной документацией и руководствами, там зачастую содержится исчерпывающая информация, к тому же - она доступна в том числе и на русском языке.
Повторюсь, что документацию по встроенному плагину вы можете найти здесь.
Разработчики предполагали, что:
Плагин «Шаблоны» позволяет быстро вставлять фрагменты текста в текущую заметку.
А также, что этот инструмент идеально подходит для "Ежедневных заметок" и Zettelkasten
Но к сожалению, то количество интерактивных полей, с которыми мы можем взаимодействовать используя встроенный плагин сильно ограничено. Мы можем использовать в своих компонентах:
- Дату:
{{date}}
; - Время:
{{time}}
; - Название заметки:
{{title}}
; - Тело заметки (будет использоваться все содержимое заметки);
Настройки
В меню настроек Шаблонов
нам доступны:
- выбор папки с шаблонами;
- выбор формата даты;
- выбор формата времени.

Как использовать?
Чтобы начать использовать встроенный плагин Шаблоны
, необходимо выполнить несколько простых шагов:
- Указать путь, где будут храниться шаблоны;
- Создать по этому пути файл шаблона;
- Открыть заметку, в которой хотите использовать шаблон в режиме редактирования;
- Вызвать меню встроенного плагин:
- С помощью палитры команд:
Cmd/Ctrl + P
, затем введитеШаблоны
или начните вводить название своей заметки/шаблона; - С помощью нажатия на иконку
Шаблоны
на левой боковой панели.
- С помощью палитры команд:
- Выбрать интересующий вас шаблон;
Звучит логично и просто, не правда ли?
Создание шаблона для встроенного плагина
Напомню, что я решил провести небольшой эксперимент: понаблюдать за своей эффективностью и заодно понять, какой объём задач я реально успеваю закрыть, c помощью отслеживания своих целей и планов в течение месяца.
Как бы я декомпозировал эту задачу?
- Ежедневно фиксировать цели — в начале и в конце рабочего дня;
- Фиксировать текущую дату;
- Отмечать время начала и окончания рабочего дня.
Какие проблемы я вижу?
- Мне важно не забывать создавать заметку каждый день. Поэтому хотелось бы, чтобы при открытии хранилища запускался скрипт, автоматически создающий шаблон по умолчанию. Это можно реализовать двумя способами:
• с помощью Templater и его функции Startup Templates;
• либо с помощью встроенного плагина Ежедневные заметки. - Чтобы видеть прогресс в течение дня, шаблон стоит разделить на две части. Мне не хочется, чтобы поля «Цели» и «Результаты» находились в заметке сразу — это убивает ощущение динамики. Логичнее оформить это как единый «ежедневный отчёт», но в две фазы:
• Часть 1: Начало дня — создаётся автоматически при запуске хранилища;
• Часть 2: Конец дня — добавляется вручную в ту же заметку.
UPD: к сожалению, планировщика из коробки у Obsidian нет, следовательно напоминать, что мне необходимо создать заметку как-будто бы не получится, что тоже верно, но только отчасти.
Если рассматривать напоминание как уведомление, а не как автоматическое выполнение действия, то здесь есть варианты:
- Использовать
Telegram API
, чтобы бот отправлял личное сообщение с напоминанием. Минус: встроенные шаблоны не умеют исполнять JavaScript, а значит нельзя вставить шаблон по расписанию с их помощью.- Использовать сторонний плагин
[Reminder](https://github.com/uphy/obsidian-reminder)
, который умеет отправлять напоминания внутри самого Obsidian — и это может быть удобным компромиссом.
Как я решал эту задачу?
Создал папку "Шаблоны" в своем хранилище, в котором разместил необходимые компоненты и указал в настройках плагина;
Создал 2 шаблона/компонента:
- "Начало дня", в котором указал следующие поля:
- "День", с использованием динамического значения даты;
- Заголовок: "Цели вначале дня";
- "Старт", с использованием динамического значения времени;
- Пустой элемент маркированного списка с типом "задача";
- Элемент маркированного списка с типом "задача", в котором вызван планировщик от
Reminder
с напоминанием, что необходимо внести результаты в указанное время; - Блок: "Примечания", в котором по необходимости буду добавлять какие-то пометки, которые необходимо учитывать, но не имеет смысла указывать в теле задачи;
- "Конец дня", в котором указал следующие поля:
- Заголовок: "Результаты дня";
- "Конец", с использованием динамического значения времени;
- Элемент маркированного списка с типом "задача";

В настройках встроенного плагина "Ежедневные заметки" указал папку, где будут создаваться ежедневные заметки, а также указал, что заметки необходимо создавать каждый день при открытии хранилища;

Что у меня получилось?
На мой взгляд, получился довольно занятный и простой инструмент, который поможет мне немного лучше понять мои возможности на какой-то конкретной дистанции.
Я понимаю, что человеческий фактор никто не может отменить, поэтому использую дополнительные инструменты, которые помогут держать в голове этот эксперимент.
Повторюсь, что теперь каждый день при открытии моего хранилища будет создаваться и открываться заметка в указанной мной папке, а также каждый вечер в указанное время я буду получать уведомления, если не закрыл задачу по внесению результатов в свой мини-отчет.
Насколько это окажется эффективным я смогу рассказать спустя время, но вполне вероятно, что это дополнительный, никому не нужный оверхэд :)


Чего не хватило?
Из-за ограничений встроенных "Шаблонов" мы не можем реализовывать практически никакую бизнес-логику, из-за чего мы не можем подсчитать, например, какая это заметка по счету. Это бы получилось, если бы я использовал Templater и считал бы количество файлов в определенной дирректории или, например, в Frontmatter
-е последней заметки записывал ее порядковый номер, а затем обрабатывал бы это значение.
Но встроенные шаблоны хороши как раз своей простотой и подобного рода ограничения, на мой взгляд, это повод задуматься: "а насколько этот функционал нужен и важен? а могу ли я получить нечто похожее, каким-нибудь другим путем?"
Звучит как то, что неизбежно породит костыль, но а с другой стороны, если быть чем-то ограниченым, то для меня это вызов попробовать вырваться из таких ограничений.
Заключение
В следующей статье я постараюсь сделать самое большое и самое подробное в русскоязычном сегменте руководство по использованию плагина Templater
. По правде говоря, хотел рассмотреть встроенные и сторонние шаблоны в рамках этой статьи, но, к сожалению, тогда статья была бы очень и очень большой. Надеюсь, что эта статья подготовит мышление читателя к формированию шаблонов в Obsidian и к следующей статье у вас появится возможность попробовать какие-то свои пайплайны.
Буду рад, если в комментариях вы поделитесь практическими задачами, которые хотели бы решать с помощью Obsidian
, или опишите интересные решения, которые вам уже удалось реализовать.
Мне также было бы приятно, если бы вы положительно оценили эту статью и участвовали в обсуждении.
Все статьи