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

81 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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](https://community.obsidian.md/plugins/card-columns). Код открыт по лицензии 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](https://github.com/mamadaevv/card-columns) у 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](https://community.obsidian.md/plugins/card-columns): версия, совместимость и число загрузок.
- GitHub: звёзды и история issues.
- Скриншот обзора показывает 196 результатов в базе Links.