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

Список «хочу прочитать» давно перевалил за сотню. Когда наконец добираешься до книги — появляется другая проблема: хочется зафиксировать цитату или мысль, но непонятно куда. Заметки в телефоне, вкладка в браузере, стикер на полях — через месяц это всё теряется. Обычный подход «одна заметка на книгу» не работал: либо файл разрастался до неприличия, либо я просто забывал его открывать. Тогда я перестал искать «правильный» плагин и спроектировал систему с нуля в Obsidian. В этой статье я покажу архитектуру, реальные шаблоны и конфигурацию баз данных — так, чтобы это можно было повторить.


Архитектура: три уровня, не один файл

Главная ошибка большинства читательских систем — складывать всё в одну заметку. Пересказ сюжета, цитаты, собственные мысли, ссылки на другие книги — всё это разная информация с разным сроком годности и разной частотой обращения.

В моей системе три типа объектов:

  • Книга — карточка с метаданными (автор, статус, жанр, темы, обложка). Без текста.

  • Цитата — отдельная заметка с дословным фрагментом, привязанная к книге.

  • Мысль — отдельная заметка с моим личным соображением, возникшим при чтении.

Цитата и мысль — не разделы внутри книги, а самостоятельные заметки. Это принципиально: они живут в своих папках, попадают в свои базы данных и могут ссылаться на другие заметки в vault независимо от источника.


Заметка о книге: YAML + живая карточка

Каждая книга создаётся через шаблон Templater. Шаблон задаёт вопросы интерактивно: автор, статус, жанр, темы, страна происхождения, URL обложки.

<%*
const title = tp.file.title;
const author = await tp.system.prompt("Автор") || "";
const statusOptions = ["Буду читать", "Читаю", "Прочитано"];
const status = await tp.system.suggester(statusOptions, statusOptions) || "";
const cover = await tp.system.prompt("URL обложки (Enter если нет)", "") || "";
const genreOptions = ["Fiction", "Non-Fiction"];
const genre = await tp.system.suggester(genreOptions, genreOptions) || "";
const direction = await tp.system.prompt("Темы (Enter если нет)", "") || "";
const countryOptions = ["Иностранное", "Отечественное"];
const country = await tp.system.suggester(countryOptions, countryOptions) || "";
-%>

На выходе — frontmatter со всеми полями и callout-карточка с inline-полями Meta Bind:

---
author: Клаус Шваб
tags:
  - литература
status: Прочитано
cover: https://...
Жанр: Non-Fiction
Темы: технологии, общество
Страна: Иностранное
---

> [!book]+ ? Четвёртая промышленная революция
> ![cover](https://...)
>
> | | |
> |---|---|
> | **Автор** | `INPUT[text:author]` |
> | **Жанр** | `INPUT[inlineSelect(option(Fiction),option(Non-Fiction)):Жанр]` |
> | **Темы** | `INPUT[inlineList:Темы]` |
> | **Страна** | `INPUT[inlineSelect(option(Иностранное),option(Отечественное)):Страна]` |
> | **Статус** | `INPUT[inlineSelect(option(Буду читать),option(Читаю),option(Прочитано)):status]` |

INPUT[] — это синтаксис Meta Bind. Поля в таблице кликабельны прямо в режиме чтения: можно поменять статус с «Читаю» на «Прочитано» не открывая frontmatter. Это мелочь, но она убирает "трение".


Templater: цитаты создаются в два клика

Вот где начинается автоматизация. Когда я хочу сохранить цитату, я создаю новую заметку в папке Цитаты/ — Templater подхватывает шаблон автоматически.

Шаблон делает четыре вещи:

  1. Показывает список всех книг из папки литература/ (кроме самих баз данных — файлы, начинающиеся с 00, отфильтрованы).

  2. Вытаскивает автора из frontmatter выбранной книги — вводить вручную не нужно.

  3. Просит ввести название цитаты (первые слова или тема) и переименовывает файл.

  4. Открывает книгу и добавляет обратную ссылку в раздел # Цитаты.

<%*
const litFolder = 'ЖИЗНЬ/литература/';
const books = app.vault.getMarkdownFiles()
  .filter(f => f.path.startsWith(litFolder)
    && !f.path.includes('/Цитаты')
    && !f.name.startsWith('00'))
  .map(f => f.basename)
  .sort((a, b) => a.localeCompare(b, 'ru'));

const book = await tp.system.suggester(books, books, false, 'Из какой книги?');
if (!book) return;

const bookFile = app.vault.getFileByPath(litFolder + book + '.md');
const bookMeta = app.metadataCache.getFileCache(bookFile);
const author = bookMeta?.frontmatter?.author || '';

const title = await tp.system.prompt('Название / первые слова цитаты');
if (!title) return;

await tp.file.rename(title);

const bookContent = await app.vault.read(bookFile);
let newBookContent;
if (bookContent.includes('# Цитаты')) {
  newBookContent = bookContent.replace('# Цитаты\n', '# Цитаты\n- [[' + title + ']]\n');
} else {
  newBookContent = bookContent.trimEnd() + '\n\n# Цитаты\n- [[' + title + ']]\n';
}
await app.vault.modify(bookFile, newBookContent);
-%>

Шаблон для мыслей (Мысль.md) идентичен — только фильтрует ещё и папку /Мысли и пишет в раздел # Мысли книги.


Двусторонние связи без ручной работы

После выполнения шаблона происходит следующее. В заметке цитаты:

---
tags:
  - цитата
book: "[[Четвёртая промышленная революция]]"
author: Клаус Шваб
---

Бенефициарами инноваций четвёртой промышленной революции в основном
являются те, кто обеспечивает интеллектуальный и физический капитал...

В заметке книги автоматически появляется:

# Цитаты
- [[Бенефициарами инноваций четвёртой промышленной революции]]

Связь двусторонняя: из книги видно все цитаты, из цитаты — источник через поле book. Никакого ручного труда — шаблон делает всё сам в момент создания.

[скриншот: заметка о книге с заполненными разделами Цитаты и Мысли — списки вики-ссылок]


Obsidian Bases: три базы, пять видов

Bases — встроенный плагин базы данных в Obsidian. Файлы .base лежат прямо в папке литература/ рядом с заметками.

00 Литература.base

Пять видов одной базы:

Карточки — визуальная галерея книг с обложками, автором и статусом. Сортировка по имени.

Представление — полная таблица, сгруппированная по жанрам. Колонки: название, жанр, статус, автор, страна, темы. Сортировка многоуровневая: статус → жанр → автор.

? Буду читать — таблица только с нечитанными книгами, по автору.

? Читаю — только текущее чтение.

✅ Прочитано — архив прочитанного.

00 Цитаты.base и 00 Мысли.base

Оба устроены одинаково: таблица с колонками «название», «книга», «автор». Сортировка по автору, потом по книге. Это позволяет быстро найти все цитаты конкретного автора — даже если они из разных его книг.


Что в итоге

Сейчас в системе 98 книг, больше 20 цитат и несколько десятков мыслей. Самое ценное — не количество, а то, что каждая сохранённая цитата немедленно связана с источником и попадает в базу. Я не трачу время на организацию после факта — шаблон делает всё в момент захвата.

Три вещи, которые сделали систему рабочей:

  • Разделение на типы заметок — книга, цитата и мысль не смешиваются в одном файле.

  • Templater с JS — автоматизация на уровне создания, а не сортировки.

  • Bases с несколькими видами — одни данные, разные способы смотреть.

Если узнали себя в этой проблеме — напишите в комментариях, как сейчас фиксируете цитаты и мысли по прочитанному. Расскажу, что можно докрутить под ваш контекст. Больше про системы в Obsidian — в моём тг-канале.

Комментарии (10)


  1. Iscander_Che
    06.05.2026 17:27

    Цитаты я уже настропалился у себя в блоге отражать, в рубрике "Цитата дня" с соответствующим тегом.) Вот фиксировать, чего цитировал, чего нет, уже замаялся. Потому что я же не только из библиотеки фиксирую. Бывает, просто песню вспомню. Или фильм. Можно сказать, кейс номер один.

    Второй кейс с цитатами - тоже про учёт. Чтобы можно было из электронных книг это делать в обсидиане. Пдфы и фб2. Пару епабов можно не рассматривать как кейс. Люблю иногла закинуть цитату в комменты. И хотелось её тоже на памят сохранить, вдруг ещё пригодится.

    И третий кейс - когда тянешь текст из сети в браузере.

    Зотеро не предлагать. Он глючил у меня на всём этом так, что я нафиг снёс его, чтобы не расстраиваться.


    1. psheno322 Автор
      06.05.2026 17:27

      1. Возможно Zotero эволюционировал с тех пор, как вы его пробовали. Во всяком случае, мне известны кейсы его успешного применения в сценариях, похожих на Ваш. 

      2. Кейс 1: Если я правильно понял, то Вы часто выписываете цитаты, но теряете их источники. В этом Вам случае Вам как раз поможет мой шаблон цитаты из статьи. 

      3. Кейс 2: Если Вы используете iOS или Android, то достаточно выделить текст, нажать "Поделиться" и выбрать Obsidian. Для кастомизации сценария настроить шаблоны в Obsidian.

      4. Кейс 3: Чтобы тянуть текст из браузера есть официальное расширение для браузеров Obsidian Web Clipper. Имеет множество настроек и удобный режим "маркера" - это то, что Вам нужно. 

      Готов помочь вам с настройкой шаблонов и организацией системы. 


      1. Iscander_Che
        06.05.2026 17:27

        Про Зотеро: полгода назад поставил его и дополнение в файрфоксе. Так дополнение отказывалось иногда сохранять статьи полнстью, как мне надо было, с того же Хабра. Может, быть, конечно, дело было в том, что у меня стояла вин 7, а не десятка. Но мне уже, честно говоря, надоело с ним возиться. Проще как-то через фронтматтер кидать ссылки на исходники и сохранять их веб-страницей полностью.

        Кейс 1: я не теряю их источники. Просто держу в уме. Уж что-что, а если я чего цитирую - так, значит, помню, откуда. :)) Мне хотелось бы при этом помнить, что я уже цитировал, а что - ещё нет.

        Кейс 2: ага, понял, спасибо. А как сценарий правильно настроить, чтобы он всё в определённую папку складывал? У меня не один ваулт на диске, а несколько, каждый под свои задачи, чтобы не пересекались.

        Кейс 3: тоже понял. Спасибо, попробую. Он только чисто текст копирует или ссыль куда-нибудь во фронтматтер заодно закинуть может? Иногда это большое подспорье.


        1. psheno322 Автор
          06.05.2026 17:27

          1. Проверять поиском нет ли файла с таким же содержанием 

          2. В мобильной версии Obsidian каждый раз спрашивает в какую папку класть. В десктопной эта фича наверное вообще не нужна, так как проще копипастнуть куда надо

          3. Шаблон там можно настроить как угодно. По умолчанию он отставляет ссылку в YAML


  1. Arastas
    06.05.2026 17:27

    А что вы потом с этим делаете? Есть какая-то система просмотра, повтора прочитанного?


    1. Artos19
      06.05.2026 17:27

      Мне лично в Обсидиане просто удобно вести заметки по биологии для ЕГЭ + ежедневные отчёты о том как прошла подготовка к тому или иному предмету (с помощью чек листов), я настроил так чтобы отображались кумулятивные и простые в высоту графики которые показывают сколько я задач выполнил за сегодня и за месяц (не так точно, но все равно хотя бы какая то информация).

      По биологии удобно перечитывать заметки, так как есть встроенный поиск и сами заметкм написаны собственными словами, поэтому информация довольно легко вспоминается. Ещё есть система тегов, по которым также можно все ещё легче искать, но мне лично просто удобнее все по папкам раскидывать


      1. Arastas
        06.05.2026 17:27

        Я спрашивал не про ведение конспектов, а про подход автора к выпискам из книг - что он потом с ними делает. Вряд ли к ЕГЭ готовится.


        1. psheno322 Автор
          06.05.2026 17:27

          Arastas, отвечаю на Ваш вопрос. Системного подхода нет. Когда нужно найти какую-то цитату или мысль, то я просто знаю где её искать. Также есть виджет "Мысль дня" на хоумпейдже в Obsidian. Позже будет про него пост


  1. alexbess79
    06.05.2026 17:27

    А сами книги у вас в этой же базе?


    1. psheno322 Автор
      06.05.2026 17:27

      Нет. Книги предпочитаю либо бумажные, либо аудио