Новые свойства Obsidian
Новые свойства Obsidian
31 августа 2023 года в программе Obsidian появились новые свойства - свойства (properties). Property - это некоторая характеристика заметки или объекта внешнего мира, описанного в заметке. В качестве таких описываемых объектов могут выступать например все знакомые, и тогда свойствами описания объекта будут имя, фамилия, дата рождения, и так далее. Свойства Obsidian позволяют легко и просто добавить к заметке в целом разнообразную информацию - даты, какие-то величины, ссылки.
Свойства заметки - это просто строчки текста, расположенные в самом верху заметки между двумя комбинациями из трех минусов без пробелов (`---`). Если вы разделяете куски заметки горизонтальной чертой - то может быть смысл подстраховаться и вместо `---` использовать `***`. Кусок заметки между двух комбинаций `---` называется frontmatter (шапка, передок) и он подчиняется спецификации YAML.
Свойства заметки могут иметь два представления - в виде предпросмотра или в виде исходного текста (source mode). Последний режим переключается принудительно выбором в меню и позволяет редактировать текст без оглядки на свойства. Иногда это бывает важно.
У каждого свойства важны три характеристики - имя свойства (property), формат свойства и содержимое свойства (value). В отношении имен свойств есть нюансы. По спецификации YAML в отношении пары property: value действует одно правило - уникальность property. И при этом допускаются любые символы, в том числе и русские буквы. Но в Obsidian пошли другим путем и разрешили любые комбинации заглавных и строчных букв в составе property. То есть надписи `Property:`, `property:` и `pROPERTY:` обозначают теперь одно и то же свойство.
С буквами других языков не ясно - вроде бы допустимо, но не понятно. Я предпочитаю по древней программистской привычке давать уникальные названия на английском языке. Это заставляет дополнительно подумать о смысле названия свойства. Европейские ученые в аналогичной ситуации формируют название из корней греческого или латинского языков.
На текущий момент доступны шесть форматов свойств:
- text - строка текста с пробелами (если начать набирать `[[` то можно вставить ссылку на другую таблицу);
- list - одна или несколько строк текста, начинающихся с новой строки и знака `-`, если у списка нет значений - записывается комбинация `[]`, в качестве значений списка могут быть и ссылки;
- number - число (ни разу не использовал пока);
- checkbox - специальный тип, допускающий значения да(true) и нет(false);
- date - формат для хранения даты, обычно записывается в виде `yyyy-mm-dd`.
- date & time - формат для хранения даты и времени, обычно записывается как `yyyy-mm-ddThh:mm:ss`(mm - обозначает месяц или минуты).
Режим просмотра заметок source mode поможет разобраться со ссылками. Ссылки в yaml по спецификации должны браться в кавычки, например `"[[Link]]"`, но кавычки не отображаются в режиме просмотра и не понимаются (пока) в режиме ввода. Необходимо просто набирать на клавиатуре `[[` и раскрывается список выбора ссылки. Дальше Obsidian сам дописывает кавычки и это можно проконтролировать в режиме source mode.
Существуют несколько типов свойств, имеющих фиксированное поведение:
- aliases - псевдонимы, используются для удобства наименования заметки на другом языке или в различных грамматических формах
- tags - тэги, ярлыки
- cssclasses - маленькие стили оформления
Эти свойства всегда имеют тип списка. Но Obsidian понимает старые форматы ввода информации - тэги и стили в старой строке могут быть разделены запятой и пробелом. Obsidian поймет такой формат, но в случае редактирования запишет по новому.
В случае использования запросов DataView описанное поведение тэгов и псевдонимов может вызвать неудобства. Поэтому в запросе Dataview вместо строки `tags as Тэги,` теперь пишу `join(tags, ", ") as Тэги`.
С псевдонимами есть два неудобства:
- ввод псевдонима должен завершаться возвратом каретки (Enter, стрелочка вниз и назад на клавиатуре),
- псевдоним не получится отредактировать просто - надо перейти в режим source mode, и уже там редактировать текст псевдонима.
Общее удобство или неудобство свойств связано с режимом подстановки. Obsidian запоминает все возможные значения конкретного свойства и при начале ввода предлагает наиболее похожие варианты. У меня часто используется поле свойств `source:` для указания источника информации - и теперь можно навести порядок в различных написаниях одного и того же источника. Для поля `author:` удобно выбирать строку для конкретного часто встречающегося автора. Причем выбор можно делать и мышкой в раскрывающемся списке.
Поиск по свойствам реализован интересным образом. Можно просто найти все заметки, имеющие свойство, например `[type]`, или `[tags]`. А можно найти все заметки имеющие конкретное значение свойства, например `[type:article]` или `[tags:AI]` вместо более традиционного `tag:#AI`.
Как это все может отразиться на личной картотеке знаний (также известной как zettelkasten)? В картотеке может быть некоторое количество различных типов заметок. З.Аренс в своей книге предлагал как минимум литературные и постоянные заметки. Другие авторы могут использовать другие типы заметок. У меня в ходу следующее множество типов заметок `{article, conspectus, insight, opinion, news, question, reference, toc, zitation}`. Раньше эти типы заметок обозначались тэгами `#fullarticle`, `#conspectus` и так далее. Сейчас я постепенно перехожу со старого обозначения на новое и надеюсь со временем перестать обозначать тип заметки тэгом. После такого перехода тип заметки не будет мешаться с тэгом содержимого, например на графе.
Как это использовать на практике? У меня есть шаблон заметки, который автоматически применяется в случае ее создания. Этот шаблон содержит перечень основных свойств заметки, которые я регулярно использую:
---
date: {{date:YYYY-MM-DD}}
type:
aliases:
tags:
source:
author:
title:
---
#
***
source:
Альтернативный способ ввода новых свойств в существующую шапку - щелкнуть по строке `+Add property` и выбрать использованное ранее свойство или создать совсем новое. Если щелкнуть по иконке справа от свойства - можно менять его тип, делать операции copy-paste или совсем убрать его.