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

И вставляем этот код прямо в заметку:
--- <%* /* * © 2025 Jarwix * * Этот шаблон предоставляется по лицензии MIT. * Вы можете использовать, изменять и распространять его свободно, * при условии обязательного указания автора и включения этой лицензии. * * Author: Jarwix (https://t.me/sdvghack) */ %> title: <%* 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
ссылка на оригинал статьи https://habr.com/ru/articles/902656/
Добавить комментарий