Obsidian URI — это пользовательский протокол URI, поддерживаемый Obsidian, который позволяет запускать различные действия, такие как открытие заметки или создание заметки. Obsidian URI обеспечивает автоматизацию и межпрограммные рабочие процессы. ## Формат URI URI Obsidian используют следующий формат: ``` obsidian://action?param1=value&param2=value ``` Параметр `action` — это действие, которое вы хотите выполнить. Доступные действия включают: - `open` — открыть заметку. - `new` — создать или дополнить существующую заметку. - `daily` — создать или открыть ежедневную заметку. - `unique` — создать новую уникальную заметку. - `search` — открыть поиск. - `choose-vault` — открыть менеджер хранилищ. > [!warning] Кодирование > Убедитесь, что ваши значения правильно закодированы в URI. Например, символы косой черты `/` должны быть закодированы как `%2F`, а пробелы — как `%20`. > > Это особенно важно, поскольку неправильно закодированный «зарезервированный» символ может нарушить интерпретацию URI. [Подробности см. здесь](https://en.wikipedia.org/wiki/Percent-encoding). ## Открытие заметки Действие `open` открывает хранилище Obsidian или файл в этом хранилище. ### Примеры - `obsidian://open?vault=my%20vault` Открывает хранилище `my vault`. Если хранилище уже открыто, фокусируется на его окне. - `obsidian://open?vault=ef6ca3e3b524d22f` Открывает хранилище с идентификатором `ef6ca3e3b524d22f`. - `obsidian://open?vault=my%20vault&file=my%20note` Открывает заметку `my note.md` в хранилище `my vault`, если файл существует. - `obsidian://open?path=%2Fhome%2Fuser%2Fmy%20vault%2Fpath%2Fto%2Fmy%20note` Будет искать любое хранилище, содержащее путь `/home/user/my vault/path/to/my note`. Затем остальная часть пути передаётся в параметр `file`. Например, если хранилище существует по пути `/home/user/my vault`, то это будет эквивалентно параметру `file`, установленному как `path/to/my note`. > [!tip] Открытие заголовка или блока > С правильной кодировкой URI вы можете перейти к заголовку или блоку внутри заметки. `Note%23Heading` перейдёт к заголовку «Heading», тогда как `Note%23%5EBlock` перейдёт к блоку «Block». ### Параметры - `vault` — может быть либо именем хранилища, либо идентификатором хранилища[^1]. - `file` — может быть либо именем файла, либо путём от корня хранилища к указанному файлу. Если расширение файла — `md`, расширение можно опустить. - `path` — абсолютный путь к файлу в файловой системе. - Использование этого параметра переопределяет как `vault`, так и `file`. - Приложение будет искать наиболее подходящее хранилище, содержащее указанный путь к файлу. - Затем остальная часть пути заменяет параметр `file`. - `prepend` — добавит содержимое в начало файла и попытается объединить свойства. - `append` — добавит содержимое в конец файла и также попытается объединить свойства. - `paneType` (необязательно) — определяет, где заметка будет открыта в интерфейсе. - если не указан, заменяется последняя активная вкладка. - `paneType=tab` — открыть в новой вкладке. - `paneType=split` — открыть в новой группе вкладок. - `paneType=window` — открыть во всплывающем окне (только для десктопа). ## Создание заметки Действие `new` создаёт новую заметку в хранилище, при необходимости с определённым содержимым. ### Примеры - `obsidian://new?vault=my%20vault&name=my%20note` Открывает хранилище `my vault` и создаёт новую заметку с именем `my note`. - `obsidian://new?vault=my%20vault&file=path%2Fto%2Fmy%20note` Открывает хранилище `my vault` и создаёт новую заметку по пути `path/to/my note`. ### Параметры - `vault` — может быть либо именем хранилища, либо идентификатором хранилища[^1]. Аналогично действию `open`. - `name` — имя создаваемого файла. Если указано, расположение файла будет выбрано на основе ваших настроек «Место для новых заметок по умолчанию». - `file` — абсолютный путь внутри хранилища, включая имя. Переопределяет `name`, если указан. - `path` — глобальный абсолютный путь. Работает аналогично параметру `path` в действии `open`, переопределяя как `vault`, так и `file`. - `paneType` (необязательно) — определяет, где заметка будет открыта в интерфейсе. Аналогично действию `open`. - `content` (необязательно) — содержимое заметки. - `clipboard` (необязательно) — использовать содержимое буфера обмена вместо указания `content`. - `silent` (необязательно) — включите этот параметр, если не хотите открывать новую заметку. - `append` (необязательно) — включите этот параметр для добавления к существующему файлу, если он существует. - `overwrite` (необязательно) — перезаписать существующий файл, если он существует, но только если `append` не установлен. - `x-success` (необязательно) — см. [[#Использование параметров x-callback-url]]. ## Создание или открытие ежедневной заметки Действие `daily` создаёт или открывает вашу ежедневную заметку. Плагин [[Ежедневные заметки]] должен быть включён. ### Примеры - `obsidian://daily?vault=my%20vault` Открывает хранилище `my vault` и создаёт или открывает ежедневную заметку. ### Параметры Действие `daily` принимает те же параметры, что и действие `new`. ## Уникальная заметка Действие `unique` создаёт новую уникальную заметку в хранилище. Плагин [[Plugins/Создатель уникальных заметок|Создатель уникальных заметок]] должен быть включён. ### Примеры - `obsidian://unique?vault=my%20vault` Открывает хранилище `my vault` и создаёт новую уникальную заметку. - - `obsidian://unique?vault=my%20vault&content=Hello%20World` Открывает хранилище `my vault` и создаёт новую уникальную заметку с содержимым `Hello World`. ### Параметры - `vault` — может быть либо именем хранилища, либо идентификатором хранилища[^1]. Аналогично действию `open`. - `paneType` (необязательно) — определяет, где заметка будет открыта в интерфейсе. Аналогично действию `open`. - `content` (необязательно) — содержимое заметки. - `clipboard` (необязательно) — использовать содержимое буфера обмена вместо указания `content`. - `x-success` (необязательно) — см. [[#Использование параметров x-callback-url]]. ## Открытие поиска Действие `search` открывает [[Поиск]] в указанном хранилище и при необходимости выполняет поисковый запрос. ### Примеры - `obsidian://search?vault=my%20vault` Открывает хранилище `my vault` и открывает [[Поиск]]. - `obsidian://search?vault=my%20vault&query=Obsidian` Открывает хранилище `my vault`, открывает [[Поиск]] и выполняет поиск по запросу `Obsidian`. ### Параметры - `vault` — может быть либо именем хранилища, либо идентификатором хранилища[^1]. Аналогично действию `open`. - `query` (необязательно) — поисковый запрос для выполнения. ## Открытие менеджера хранилищ Действие `choose-vault` открывает [[Управление хранилищами|менеджер хранилищ]]. ### Примеры - `obsidian://choose-vault` ## Интеграция с Hook Это действие Obsidian URI предназначено для использования с [Hook](https://hookproductivity.com/). ### Пример `obsidian://hook-get-address` ### Параметры - `vault` (необязательно) — может быть либо именем хранилища, либо идентификатором хранилища[^1]. Если не указан, будет использоваться текущее или последнее активное хранилище. - `x-success` (необязательно) — см. [[#Использование параметров x-callback-url]]. - `x-error` (необязательно) — см. [[#Использование параметров x-callback-url]]. Если `x-success` определён, этот API будет использовать его как x-callback-url. В противном случае в буфер обмена будет скопирована Markdown-ссылка на текущую активную заметку в виде URL `obsidian://open`. ## Использование параметров x-callback-url Некоторые конечные точки принимают параметры x-callback-url: `x-success` и `x-error`. Когда они указаны, Obsidian передаёт следующее в обратный вызов `x-success`: - `name` — имя файла без расширения. - `url` — URI `obsidian://` для этого файла. - `file` (только для десктопа) — URL `file://` для этого файла. Например, если Obsidian получит `obsidian://.....x-success=myapp://x-callback-url`, ответом будет `myapp://x-callback-url?name=...&url=obsidian%3A%2F%2Fopen...&file=file%3A%2F%2F...` ## Сокращённые форматы В дополнение к форматам выше, доступны два «сокращённых» формата для открытия хранилищ и файлов: 1. `obsidian://vault/my vault/my note` эквивалентно `obsidian://open?vault=my%20vault&file=my%20note`. 2. `obsidian:///absolute/path/to/my note` эквивалентно `obsidian://open?path=%2Fabsolute%2Fpath%2Fto%2Fmy%20note`. ## Устранение неполадок ### Регистрация Obsidian URI На Windows и macOS достаточно один раз запустить приложение, чтобы зарегистрировать протокол Obsidian URI на вашем компьютере. На Linux этот процесс значительно сложнее: 1. Убедитесь, что вы создали файл `obsidian.desktop`. [Подробности см. здесь](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files). 2. Убедитесь, что ваш desktop-файл указывает поле `Exec` как `Exec=executable %u`. Параметр `%u` используется для передачи URI `obsidian://` в приложение. 3. Если вы используете установщик AppImage, вам может потребоваться распаковать его с помощью `Obsidian-x.y.z.AppImage --appimage-extract`. Затем убедитесь, что директива `Exec` указывает на распакованный исполняемый файл. [^1]: Идентификатор хранилища — это случайный 16-символьный код, присвоенный хранилищу, например `ef6ca3e3b524d22f`. Этот идентификатор уникален для каждой папки на вашем компьютере. Идентификатор можно найти, открыв переключатель хранилищ и нажав «Скопировать ID хранилища» в контекстном меню нужного хранилища.