Я уже писал на Хабре статью, что такое СДВГ и как он влияет на жизнь. Жизнь с СДВГ создаёт свои трудности и я (как имеющий этот синдром) ненавижу и максимально стараюсь избегать любую рутину.
Иногда это доходит до крайности — мне необходимо заполнить какие-то заметки, но они все одинаковые. Ты их копируешь, вставляешь, опять поднимаешь руку к мышке, пытаешься попасть в нужную строку иии... глючит при прокрутке ролик, ты промазываешь и эмоции такие, что хочется выкинуть всю технику в окно.
Поэтому я сделал для себя кучу шаблонов заметок, которые очень быстро заполняются по правилу игры «Тронул мышку — проиграл». Эти шаблоны сильно облегчили мою жизнь и одним таким шаблоном я и хочу поделиться.
Содержание статьи
Rolodex
Вы вряд ли слышали про Rolodex. Это картотека, которая связана больше с американской культурой. Удобно было обменяться визитками и сразу вставить в свой ролодекс, потому что визитки уже имели специальные прорези под это:

У миллиардера Джона Рокфеллера карточки ролодекса выглядели более массивно и информативно (и, по некоторым данным, их у него было около 200 тысяч):

Давайте возьмем подобный формат за основу нашего ролодекса, а именно Имя, Фамилия, Номер телефона, Момент знакомства с человеком и Заметки о человеке в свободной форме.
Предварительная настройка Obsidian
Пошаговая инструкция для полнейших чайников, у кого всё ещё нет Obsidian (или пропускаем этот раздел, если, в целом, уже умеете пользоваться приложением):
Скачиваем Obsidian с официального сайта, если до сих пор этого не сделали: https://obsidian.md/download
Запускаем Obsidian. Нас встречает Главное меню приложения. Можете изменить язык на Русский в выпадающем меню, я же это делать не буду (но буду дублировать свои выборы на русском языке).
Выбираем в меню Create new vault (Создать новое хранилище). Кликаем по Create (Создать).Vault name (Имя хранилища) выбираем какое Вашей душе угодно. Но лучше не использовать пробелы, называть хранилище одним словом.
Location (Расположение) лучше не делать длинным и не иметь пробелы в пути (это не обязательно, просто с большой базой становится сложнее работать со скриптами). Лучше лаконично, к примеру, "C:\Work\". Итак, я создал хранилище в C:\Work\ и назвал её rolodex, кликнув по Create (Создать):

Всё, мы всё создали и, в целом, настраивать даже ничего и не нужно в самом приложении, из коробки всё уже хорошо:

Но если Вам что-либо нужно изменить — необходимо кликать по шестеренке напротив названия нашего хранилища. К настройкам мы ещё далее вернемся.

Настройка шаблона Rolodex
Создаем новую папку, назовём её Templates.

Перейдем в Настройки (кликнув по той самой шестеренке, как я объяснял выше). Переходим в Community plugins (Сторонние плагины):

Включаем Turn on community plugins (Включить плагины сообщества) и выбираем Browse (Обзор):

У меня сразу тут вылез нужный мне Templater. Устанавливаем его. Для этого переходим по нему и кликаем по Install (Установить) и Enable (Включить):

Заходим сразу в Options (Настройки) и выбираем Templates, как папку по умолчанию:

Создаём новую заметку в папке Templates и называем её Rolodex Template:

И вставляем этот код прямо в заметку:
(UPD: если код съезжает и ломается — скачиваем код отсюда: https://github.com/jarwix/obsidian-templates).
---
title: <%*
/*
* © 2025 Jarwix
*
* Этот шаблон предоставляется по лицензии MIT.
* Вы можете использовать, изменять и распространять его свободно,
* при условии обязательного указания автора и включения этой лицензии.
*
* Author: Jarwix (https://t.me/sdvghack)
*/
const surname = await tp.system.prompt("Введите фамилию");
const name = await tp.system.prompt("Введите имя");
const title = `${surname.trim()} ${name.trim()}`;
tR += title;
%>
created: <% tp.date.now("YYYY-MM-DD HH:mm") %>
<%*
let categories = [
"Друзья",
"Коллеги",
"Семья",
"Клиенты",
"Партнёры",
"Знакомые",
"Образование",
"Другое"
];
let selectedCategory = await tp.system.suggester(
categories,
categories,
false,
"Выберите категорию контакта"
);
let rolesByCategory = {
"Друзья": ["Друг", "Близкий друг", "Романтический партнёр"],
"Коллеги": ["Коллега", "Руководитель", "Подчинённый", "Наставник", "Ученик"],
"Семья": ["Родственник", "Супруг/Супруга", "Родитель", "Ребёнок", "Брат/Сестра"],
"Клиенты": ["Клиент", "Заказчик", "Контрагент"],
"Партнёры": ["Деловой партнёр", "Инвестор", "Соавтор"],
"Знакомые": ["Знакомый", "Сосед", "Бывший коллега"],
"Образование": ["Учитель", "Преподаватель", "Наставник", "Тренер", "Репетитор"],
"Другое": ["Коуч", "Советник", "Вдохновитель", "Спикер", "Онлайн-знакомый", "Знаменитость", "Другое"]
};
let roles = rolesByCategory[selectedCategory] || ["Другое"];
let selectedRole = await tp.system.suggester(
roles,
roles,
false,
"Выберите роль контакта"
);
tR += `category: ${selectedCategory}\nrole: ${selectedRole}`;
%>
birthday: <%*
let birthday = await tp.system.prompt("Введите день рождения (например, 1990-05-15)", "-");
birthday = birthday.trim();
if (!birthday.match(/^\d{4}-\d{2}-\d{2}$/)) {
birthday = "";
}
tR += birthday;
%>
tags:
- Rolodex
- Person
- Контакт
---
# Карточка: <% title %>
**Дата создания:** <% tp.date.now("YYYY-MM-DD") %>
---
## Основная информация
**Место работы/учебы:** <%*
let workplace = await tp.system.prompt("Введите место работы/учебы (например, Поликлиника в Химках)", "-");
tR += workplace.trim();
%>
**Должность:** <%*
let jobtitle = await tp.system.prompt("Введите название должности (например, врач)", "-");
tR += jobtitle.trim();
%>
**Знакомство:** <%*
let meeting = await tp.system.prompt("Как именно познакомились (в чате, лично, можно краткую историю)", "-");
tR += meeting.trim();
%>
**Дата знакомства:** <%*
let timemeeting = await tp.system.prompt("Введите дату знакомства (год, если не получается вспомнить точную дату)", "-");
tR += timemeeting.trim();
%>
---
## Контактные данные
**Телефон:** <%*
let phone = await tp.system.prompt("Введите номер телефона", "Не указан");
tR += phone.trim();
%>
**Email:** <%*
let email = await tp.system.prompt("Введите email", "Не указан");
tR += email.trim();
%>
**Социальные сети:** <%*
let socials = await tp.system.prompt("Введите ссылки на соцсети (или оставьте пустым)", "Не указаны");
tR += socials.trim();
%>
---
## Заметки
<%*
let notes = [];
let continueAdding = true;
while (continueAdding) {
const note = await tp.system.prompt("Введите заметку о человеке, его хобби, отношение к Вам. Можно вводить несколько пунктов через Enter. Для завершения оставьте пустое поле.");
if (note) {
notes.push(note);
} else {
continueAdding = false;
}
}
if (notes.length > 0) {
tR += notes.map(n => `- ${n}`).join("\n");
} else {
tR += "- Нет заметок";
}
%>
---
## Встречи и события
<%*
let flag = true;
let events = await tp.system.prompt("Добавить событие или встречу? (или оставьте пустым)");
if (events) {
tR += `- [ ] ${events} #rolodex\n`;
flag = false;
}
if (!birthday) {
tR += `- [ ] Узнать и добавить день рождения #rolodex\n`;
flag = false;
}
if (notes.length == 0) {
tR += `- [ ] Нет заметок — необходимо узнать о человеке побольше #rolodex\n`;
flag = false;
}
if (flag){
tR += `- [ ] Нужно что-то запланировать совместное с человеком? #rolodex\n`;
}
%>
<%*
let fileName = `${title}`;
let startFolder = `Картотека`;
const firstLetter = fileName.charAt(0).toUpperCase();
let targetFolder = "";
if (/[А-И]/.test(firstLetter)) {
targetFolder = `${startFolder}/А-И/${firstLetter}`;
} else if (/[К-Т]/.test(firstLetter)) {
targetFolder = `${startFolder}/К-Т/${firstLetter}`;
} else if (/[У-Я]/.test(firstLetter)) {
targetFolder = `${startFolder}/У-Я/${firstLetter}`;
} else if (/[A-I]/.test(firstLetter)) {
targetFolder = `${startFolder}/A-I/${firstLetter}`;
} else if (/[J-Q]/.test(firstLetter)) {
targetFolder = `${startFolder}/J-Q/${firstLetter}`;
} else if (/[R-Z]/.test(firstLetter)) {
targetFolder = `${startFolder}/R-Z/${firstLetter}`;
} else {
targetFolder = `${startFolder}/-Другое`;
}
let finalFilePath = `${targetFolder}/${fileName}`;
let counter = 2;
while (await app.vault.adapter.exists(`${finalFilePath}.md`)) {
finalFilePath = `${targetFolder}/${fileName} - ${counter}`;
counter++;
}
await tp.file.rename(fileName);
await tp.file.move(finalFilePath);
%>
Тронул мышку — проиграл
Следим за пальцами, чтобы они не переключились на мышку:
CTRL+N (создаём новую заметку).
ALT+E (горячая клавиша Templater, возможно придется переключить раскладку клавиатуры на Английский язык).
Клавиша вниз и Enter:
Вводим фамилию. Enter:
Вводим Имя. Enter:
Стрелочками выбираем Категорию контакта. Enter:
Выбираем Роль контакта. Enter:
Вводим дату рождения в формате ГГГГ-ММ-ДД (можем пропустить, если не знаем). Enter:

Вводим место работы (или пропускаем, если не знаем). Enter:

Вводим название должности у человека (пропускаем, если пока не знаем). Enter:

Вводим как и где познакомились с человеком (тоже можно пропустить). Enter:

Вводим дату знакомства. Можно в свободной форме, если не знаете точно. Enter:



Номер телефона и другие пункты я заполнять не буду, пусть они будут не указаны. Вообще было бы умнее номер телефона и другие данные вытащить во Frontmatter, но здесь это не особо имеет смысла, так как с такими данными никакого аналитики не построить или какой-то особый парсинг не нужен (а день рождения, например, важен).

Здесь вводим заметки о человеке, как в ролодексе у Рокфеллера. Важные даты у человека, его интересы и т.д. Не старайтесь разные мысли ввести в одну строку, лучше мысли разделить на несколько пунктов. Помните, к этому и всем остальным пунктам Вы можете вернуться позже. Enter (с пустым полем для перехода к следующему пункту):

Вы можете добавить сразу событие или встречу с этим человеком, она появится с тегом #rolodex. Я оставлю пустым, чтобы показать что будет при пустом вводе. Enter:

Карточка сгенерирована. Что сразу видно: создана папка Картотека, в ней создалась папка А-И и далее буква под фамилию человека И. То есть не нужно волноваться про создание папок и подпапок, шаблон сделает всё сам.

Мы не заполнили последний этап, поэтому появился отдельный пункт снизу, чтобы человек не выпал вообще из вашего поля зрения и Вы его не забыли, когда будете вытаскивать данные по тегу #rolodex. Если, например, не будет введена дата рождения — будет напоминание о том, чтобы Вы узнали информацию о дне рождении. Если не будет заметок — будет напоминание о том, что нужно узнать о человеке побольше.
Ну и финальный вид, как бы это выглядело, если бы были найдены все люди на все папки:

Выложу ещё некоторые шаблоны у себя в Telegram-канале, где я делюсь своими лайфхаками по борьбе с СДВГ и выкладываю некоторые свои разработки: https://t.me/sdvghack