Files
site-portfolio/texts/cases/card-columns-obsidian.md
T

11 KiB
Raw Blame History

Card Columns для Obsidian Bases

  • Источник: src/pages/cases/card-columns-obsidian.html
  • eyebrow: Obsidian Bases · Plugin
  • meta description: Как я создал Card Columns для Obsidian Bases: группировка заметок по свойствам, фильтрация тегов AND/OR и перенос карточек между колонками.

Канбан-доска для Obsidian Bases с фильтрацией и перетаскиванием

Card Columns: группировка по свойствам, быстрый отбор тегов AND/OR.

На скриншоте моя база Links: Obsidian показывает 196 результатов.

Я разработал Card Columns, дополнительный вид карточек для Obsidian Bases. Штатный Cards показывал заметки сеткой, а мне был нужен вид с колонками. В готовых плагинах я не нашёл подходящего сценария, поэтому сделал свой. Плагин опубликован в каталоге Obsidian Community. Код открыт по лицензии MIT.

Ещё один вид карточек для Bases

В Obsidian Bases я настраиваю запрос через интерфейс и выбираю, как показать результат: таблицей, списком или карточками. Card Columns добавляет ещё один карточный вид: раскладывает заметки по колонкам на основе выбранного свойства.

Сортировку, фильтры, поиск и набор свойств задаю в штатном тулбаре Bases. Columns использует эту выборку и меняет способ её отображения. При просмотре заметки остаются без изменений. Перетаскивание карточки обновляет свойство, по которому построены колонки.

Сначала сгруппировать, потом отобрать

В тулбаре Bases выбираю Group by: тег, статус, категорию или другое свойство. Если группу не задать, Columns группирует по тегам. Меняю Group by, и колонки перестраиваются.

Мне нужна была одна карточка сразу в нескольких столбцах. Например, ссылка с тегами «Инструменты» и «AI» появляется в обеих колонках. В базе фильмов одна и та же карточка может попасть в «Комедии» и «Семейные». Готовые плагины, которые я пробовал, такого сценария не решали. Поэтому я сделал Columns. Так заметку не нужно дублировать: она видна в каждой подходящей группе.

Пилюли тегов стоят под тулбаром, рядом с доской. Обычный клик оставляет один тег, а следующий добавляет ещё один по OR. Ctrl+клик или правый клик включает и выключает отдельный тег, не сбрасывая остальные. В режиме OR достаточно совпадения с одним выбранным тегом. AND оставляет заметки, где есть все выбранные теги. All сбрасывает отбор.

Фильтр по тегам уточняет уже полученную выборку. Штатный Filter задаёт основные условия через тулбар, а пилюли позволяют быстро выбрать нужную комбинацию, не уходя с доски.

Карточка показывает нужные поля

Какие поля попадут на карточку, выбираю в штатном списке Properties. Первое свойство становится заголовком, остальные показываются чипами: текст, теги, ссылки, булевы значения и даты. Grid собирает свойства с короткими значениями в компактную сетку, Stack располагает их друг под другом. Для длинных значений можно включить перенос, а даты показывать в нужном формате. Так карточка показывает выбранные для конкретной базы поля, не меняя сами заметки.

Если для базы нужны обложки, Columns возьмёт первую картинку из заметки или значение указанного свойства frontmatter. В настройках задаю пропорции (Auto, 1:1, 3:2, 4:3 или 16:9), способ вписывания и место на карточке. Карточку можно открыть в активной панели, модальном окне, новой вкладке или сплите. В сплите обычный клик открывает заметку в панели рядом с доской, а Ctrl+клик добавляет вкладку в эту панель. Доска остаётся на месте, и контекст выборки не теряется.

Интерфейс в стиле Obsidian

Интерфейс Columns я проектировал и собирал прямо в коде, без Figma и других редакторов. Ориентировался на дизайн-систему Obsidian, чтобы вид воспринимался частью приложения.

Перетаскивание меняет свойство заметки

В версии 0.9.0 карточки можно перемещать между колонками. При переносе Columns через API Obsidian processFrontMatter() меняет frontmatter-свойство, по которому построена группировка. На статусной доске перенос меняет статус заметки. Если свойство хранит список, плагин заменяет перенесённое значение и сохраняет остальные значения.

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

Настройки сгруппированы по типу

Разделы General, Title, Properties и Cover собраны по типу параметров, чтобы нужное было проще найти. В General задаю ширину карточек, число колонок в группе (от 1 до 6) и их порядок. Можно оставить автоматический порядок или задать его вручную; пустые колонки при этом остаются на месте. Например, колонка Done не исчезнет, даже если в ней пока нет карточек.

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

От разработки к публикации

Разработку веду с помощью Hermes Agent. Исходный код хранится на VPS агента, а собранная версия синхронизируется на мой ноутбук. Там я проверяю плагин в своём vault.

Если всё работает, агент через настроенные скрипты отправляет изменения в Gitea и GitHub. Публикацию новой версии в каталоге Obsidian Community я запускаю сам.

Результат: доска внутри Obsidian Bases

Card Columns оставляет заметки в Bases, но меняет способ их обзора: я задаю группировку, отбираю теги и открываю карточки рядом с доской. Когда нужно сменить статус, перетаскивание обновляет свойство, по которому построены колонки.

К концу сентября 2026 года плагин набрал 846 органических загрузок в каталоге Obsidian Community. Там указана версия 0.9.0. На GitHub у Card Columns 4 звезды и два обращения: сообщение об ошибке закрыто, а запрос на выбор свойства обложки пока открыт. Некоторые предложенные доработки уже вошли в релизы. Плагин работает с Obsidian 1.8.0 и новее на компьютерах и мобильных устройствах, лицензия MIT.

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

Медиа

Скриншоты и скринкасты взяты из репозитория Card Columns и лежат в public/assets/card-columns-obsidian/:

  • overview.webp - обзор базы Links, обрезан по краям на 4 px;
  • filter-use.webp - постер фильтрации тегами, обрезан по краям на 4 px; filter-use.webm - демонстрация OR/AND;
  • view-configure.webp - постер настроек вида; view-configure.webm - демонстрация настроек.

Источники фактуры

  • Репозиторий Card Columns, версия 0.9.0: README.md, manifest.json, main.ts.
  • Карточка плагина в Obsidian Community: версия, совместимость и число загрузок.
  • GitHub: звёзды и история issues.
  • Скриншот обзора показывает 196 результатов в базе Links.