Миграция с MS OneNote на Obsidian

Каменюка ОбсидианЕще в 2015 году для ведения заметок я перешел с Evernote на OneNote. Причины, побудившие меня в то время на миграцию, весьма банальны — Evernote отвратительно работал без наличия подключения сети, перманентно намекал, что хочет денег, а OneNote на его фоне выглядел просто космическим кораблем с множеством инструментов. Но с тех пор прошло 8 лет и пришло время уходить с Microsoft OneNote на что-то более продуктивное.

Так чем же оказался так плох OneNote, что его пришлось начать процесс его замены? Начну издалека.

Microsoft фактически перестала развивать свой продукт. На протяжении лет OneNote не менялся, не эволюционировал, в нем не появлялось новых функций, не происходило никаких улучшений. Когда продукт не развивается, это означает, что он начинает стагнировать. Конкуренты стараются, выдумывают новые возможности, модернизируют старые опции. И как бы ни был хорош OneNote, а он действительно на момент своего выхода в широкие массы был очень хорош, есть велика вероятность, что компания его просто уничтожит, так как не проявляет к нему никакого интереса.

А каких функций мне не хватало в OneNote? Как оказалось, я довольно-таки серьезный пользователь этого электронного блокнота. За несколько лет у меня образовалось пять записных книжек общим объемом порядка 400 мегабайт. Но записные книжки превратились в кладбище идей, похороненных под кипой устаревшей и никому не нужной информации. Создатели OneNote увлеклись визуализацией своего решения, стараясь представить его как можно ближе к обычной запиской книжке бумажного формата, в которой можно писать от руки в любом месте, рисовать на изображениях и размещать одни заметки поверх других. В этом вопросе OneNote до сих пор находится вне конкуренции. Но за внешней красотой они забыли про продуктивность, точно так же, как дизайнеры Windows 11 сфокусировались на красоте рабочего стола, а специалисты по юзабилити вообще остались не у дел. Все закончилось тем, что OneNote стал похож на реальный кабинетный рабочий стол в несколько слоев заваленный разрозненными бумагами. И только считаные единицы из них используются более-менее активно, так как лежат они на вершине всей кипы.

Далее, Microsoft всеми силами, правдами и неправдами, старается перевести пользователей на использование своих сервисов по подписке. Ведь куда интереснее получать от потребителей регулярную оплату с полным пониманием, что платить он будет пожизненно, ведь уйти от сервисов Microsoft может не каждый. Вот уже и Office переехал в онлайн и очень хорошо там укрепился, а далее осталось совсем немного до полного закрепощения людей в инфраструктуре одного провайдера технологических решений. Первые шаги уже сделаны. Современные OneNote хранят все записные книжки в облаке OneDrive, скачать их оттуда невозможно. Ситуацию усугубил февраль 2022 года, когда Microsoft всего несколькими своими телодвижениями потерял статус надежного партнера для юридических лиц. Невнятная политика по работе в России, «кидок» юридических лиц, отказы от возврата уплаченных сумм, надолго испортили деловую репутацию Microsoft. Но еще и неясно, последуют ли физические лица вслед за юридическими, ведь нарушение обычаев делового оборота, оферт и своих же собственных политик, наглядно демонстрирует, что компания может творить любую дичь и сделать с ней ничего нельзя, кроме как перестать пользоваться ее услугами. Как следствие, необходимо спасти свои данные, будь они даже и малоценными, переложить их в надежное и подконтрольное место.

Резюмируя: причин для ухода с OneNote достаточно, основная их которых — риск того, что уйти на альтернативную систему придется все равно. Но лучше начать перемещение заранее, не дожидаясь безальтернативного решения с противоположной стороны земного шарика.

Содержание

Альтернативы

После осознания необходимости миграции с OneNote началась активная работа по поиску альтернативного решения. К нему предъявлялись следующие требования:

  • Возможность Self-Hosted решения, когда хранение файлов заметок возможно полностью своими силами, без привлечения третьей стороны.
  • Open Source решение, когда код продукта поддерживается сообществом, и его судьба не зависит от решений корпораций. Что людям нужно и удобно — будет поддерживаться и развиваться.
  • Хранение данных в простом формате, с которым можно перейти на другое решение, если вдруг текущее перестанет выполнять те функции, для которых оно использовалось.
  • Использование — бесплатное.
  • Присутствие синхронизации между различными устройствами, в том числе и доступ с мобильного (Android).

В процессе поиска по сети, чтения множества статей и обзоров сам собой сформировался набор «блокнотов», которые следовало опробовать с целью выбора наиболее подходящего под сформулированные запросы. В моем представлении Evernote и OneNote должны были не только поделить рынок, но и реализовать тактику «выжженной земли», не оставив ни единого пользователя всем остальным альтернативным записным книжкам. Ведь многие пытались повторить успех Evernote и благополучно растворились в истории Глобальной сети. Отчасти именно так и произошло.

Но даже на опустошенной земле могут прорости семена, если о них заботиться. На смену неудачливым проектам прошлого пришли новички, с четким понимаем, что нужно делать и как. Они сумели, не без поддержки своих сообществ, определить потребности потенциальных потребителей и выдать вполне годные продукты на рынок.

Сила сообщества
Похоже, что в современном обществе, где вовлечение людей в сеть и технологии, вероятно, достигли своего максимума, реальной силой, двигающей развитие стали сообщества пользователей. Именно они становятся тем порохом, который хранится в пороховницах. К сообществам надо прислушиваться и выстраивать партнерские коммуникации. Им нельзя диктовать свои условия, тем более в мире Open Source проектов.

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

Simplenote

Решение Simplenote от тех же самых ребят (сейчас от тех же), что выдумали и реализовали WordPress — самую популярную в мире платформу для веб-сайтов. Решение Simplenote полностью оправдывает свое название, а перевести его можно как «Простая заметка». И действительно, тут нет ничего, кроме возможности вводить, редактировать и удалять заметки. Создать папки, поискать или дополнить заметку чем-то более интересным — решительно невозможно. Но в наличии беспроблемная синхронизация и публикация своих заметок.

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

Что такое Markdown?
Markdown это разметка текстовых файлов, предоставляющая упрощенный способ оформления текста (добавляются заголовки, выделения жирным и т.п.). Позволяет форматировать текст исключительно с клавиатуры, поэтому популярен у программистов. Без специального редактора, понимающего разметку Markdown, файлы можно просматривать, без потери читаемости, обычными текстовыми редакторами. За время развития формата — образовалось несколько диалектов, расходящихся между собой в деталях решения сложных вопросов форматирования текста.

Simplenote — очень хорошая заявка в плане минимизации функций и простоты использования. Эдакий Twitter в мире блокнотов. Но решение явно не для моих объемов. Simplenote больше похож на маленькую записную книжечку в кожаной обложке, со списком продуктов и несколькими телефонными номерами, которую удобно положить в задний карман джинсов.

Notion

Пожалуй Notion — самый мощный и готовый к работе инструмент среди всех рассмотренных записных книжек. Тут есть сразу все, что требуется для ведения продуктивной работы. Даже немного больше, так как начать работать в Notion невозможно без прохождения обучения. Слишком в нем всего много: заметки, комментарии, групповая работа, ведение проектов, To Do, шаблоны разные и многообразные. Просто глаза разбегаются.

Есть приложение для Windows, есть для Mac, присутствует WebClipper (специальный плагин для браузера, позволяющий сохранять веб-страницы прямо в записную книжку для последующего чтения или анализа). Разумеется, в наличии мобильные приложения для Apple и Android. Экспорт в Markdown нужен? И он есть. И даже бесплатный план работы, которого хватит за глаза любому нормальному человеку не работающему в крупной компании с тысячами проектами за которыми нужен глаз да глаз.

Так, стоп-стоп. Notion штука замечательная, но данные хранятся на их сервере, никаким Open Source тут не пахнет и в случае чего у нас не будет никаких шансов заполучить свои драгоценные данные. Да, здорово, инструмент действительно мощный, но увы, он не проходит по основным критериям отбора. Мои заметки только мои и должны храниться в моей инфраструктуре или, по крайней мер,е у меня должна быть возможность в любой момент получить к ним полный доступ вне зависимости желания Notion или магистрального интернет-провайдера.

Joplin

Если хочется настоящего Open Source, то Joplin — то, что требуется. Полностью открытый продукт с развитым сообществом, который активно развивается. По-русски Joplin произносится как «Джоплин», что не только позволяет легко запомнить название продукта, но еще и является фамилией известных в США музыкантов (они не являются родственниками, просто фамилия популярная).

У Joplin есть клиенты подо все основные операционные системы, включая мобильные. Дополнительно в комплекте есть даже терминальное решение, специально для тех, кто не успел привыкнуть к графическим интерфейсам. Помимо непосредственно приложений для работы с заметками для скачивания доступен WebClipper.

Заметки Joplin хранит в формате Markdown в локальной файловой системе. Это означает, что в любой момент вы можете получить доступ к любой из своих заметок без Joplin. Единственное огорчение — найти заметку будет непросто. Joplin хранит все заметки под кодовыми именами и при большом объеме разобраться какой файл принадлежит к какой заметке может потребовать времени. Синхронизацию заметок можно проводить либо облачными дисками (Google Drive, Yandex Disk или другими), либо воспользовавшись платной подпиской специально для синхронизации. Именно на синхронизации, возможности коллективной работы над заметками и их публикации в сети зарабатывают «джоплиновцы». Все остальное бесплатно и не имеет ограничений.

Синхронизация через облачные диски имеет свои особенности. О проблемах, возникающих при синхронизации, я остановлюсь в соответствующем разделе про Obsidian, но Joplin предлагает еще и фирменный сервер синхронизации для установки на своих мощностях. Бесплатно. Возможно, что в будущем он также останется бесплатным и при помощи Joplin уже сейчас можно организовать полноценную систему хранения, обмена и публикации заметок на основе формата Markdown.

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

Но немного «погоняв» систему я пришел к неутешительному выводу — я не смогу использовать Joplin, так как авторы старались создать альтернативу Evernote и, к сожалению, скопировали у него не только хорошее, но и плохое. В Windows-приложении никоим образом нельзя открыть сразу две заметки или открыть одну заметку сразу в двух местах для редактирования. Единственный способ работать сразу с двумя заметками — открыть одну из них во внешнем редакторе. Просчет, на мой взгляд, колоссальный, особенно если «записная книжка» используется не только для записи коротких заметок, а предполагается более серьезная работа над собранным материалом, такая как его анализ и переработка. Даже в OneNote присутствует возможность открывать дополнительные окна для работы сразу с несколькими заметками.

Кроме необъяснимой ригидности в плане свободы редактирования в Joplin меня не устроила полная невозможность переноса материалов из OneNote при помощи копирования и вставки. Вместо текста Joplin услужливо вставлял картинку с текстом. Не знаю, это так задумано или я в чем-то не разобрался, но с миграцией могли возникнуть серьезные проблемы. А окончательно отбили желание переходить в Joplin — мелкие ошибки, которые возникали при установке плагинов. И к сожалению, от Joplin пришлось отказаться в пользу менее ограниченного решения.

Его величество Obsidian

Я тщательно избегал возможности перехода на Obsidian, пока не посмотрю все остальные варианты, так как его хвалили многие, буквально из каждого утюга. После беглого осмотра мне он показался каким-то слишком бездушным и, возможно, унылым. Одного взгляда на интерфейс достаточно для того, чтобы содрогнуться от макушки и до самых пят. Где-то внутри все сжимается оттого, что тут придется наверняка все устанавливать через сами знаете что, а еще придется немного программировать и, однозначно, допиливать. Но действительность оказалась не такой пугающей, а неказистый по первому впечатлению Obsidian, вполне милым и покладистым зверьком, готовым на выполнение любых потребностей связанных с хранением и обработкой заметок. Практически весь текст далее, за исключением последнего раздела, относится именно к Obsidian, к тому, как начать пользоваться им наиболее эффективным образом. Как говорится в старом мультфильме «Лучше день потерять, зато потом за пять минут долететь». Сказано метко и точно про Obsidian.

Что такое Obsidian

Кстати, чтобы не путать Obsidian, как программное обеспечение, с обсидианом, как горной породой, лучше в поисковых системах забивать именно obsidian, а еще грамотнее будет использовать полное доменное имя в виде obsidian.md. В таком случае поисковые системы точнее понимают, что же именно ищет пользовать.

Obsidian, по крайней мере все Desktop-приложения, реализованы на фреймворке Electron. Фреймворк Electron специально разработан для создания десктоп-приложений с широкими возможностями по редактированию текста, поддержкой оформления при помощи HTML и CSS. А основной язык программирования, применяемый во фреймворке — JavaScript. Все эти функции максимально использованы в Obsidian. Electron применяется не только в Obsidian, но и, например, в таких продуктах, как MS Visual Studio Code, MS Teams, Notion, Slack, Trello, WordPress Desktop и многих других. Большинство из этих продуктов, особенно VSCode, сосредоточены на редактировании и работе с текстом. И тут мы плавно подходим к тому, что же такое Obsidian на самом деле.

Obsidian — всего лишь продвинутый редактор файлов Markdown.
Но вся его сила заключается в открытой архитектуре и возможности добавления плагинов и безграничная кастомизация, предоставляемая фреймворком Electron.

И ведь если разобраться, то так оно и есть. Все файлы заметок хранятся просто в виде отдельных файлов MD (Markdown). Если в записной книжке есть папки, то они точно так же присутствуют и на диске вашего компьютера. Их можно открыть и обрабатывать любым текстовым редактором, хоть VSCode, хоть MS Word с Writage. Без плагинов Obsidian не умеет ничего. Ни найти нужный файл, ни отобразить дерево файлов, ни показать теги, ни провести рефакторинг заметок. Он может лишь обрабатывать текстовые файлы в формате MD и более ничего. Но, зато, благодаря Electron, работа с файлами в Obsidian — чистое удовольствие. Можно работать с одним файлом, можно одновременно открыть несколько файлов во вкладках, можно открыть один файл в нескольких вкладках, можно открыть несколько новых окон и в них открыть один или несколько файлов, можно разделить одно окно на несколько зон и открыть в них файлы. Настоящий пример неимоверной гибкости, особенно если сравнивать с Joplin.

Все вещи, кроме редактирования, реализованы в Obsidian посредством плагинов. Их можно включать и отключать, добавлять новые и удалять надоевшие. А еще их можно настраивать так, как требуется именно владельцу записной книжки, а не программисту ее разработавшему.

Все заметки в Obsidian хранятся в так называемых «Хранилищах» (или Vault). Vault это просто папка на диске, в которой находятся инициализирующие каталоги Obsidian. В этих каталогах хранятся настройки Obsidian, плагины, темы оформления и удаленные заметки. Все данные, включая плагины, настройки и собственно сами заметки — всё в одном каталоге. Хранилищ можно организовать столько, сколько требуется и сколько может вместить жесткий диск компьютера (очень много). Одновременно можно работать сразу с несколькими хранилищами, правда, открыты они будут в разных окнах Obsidian.

Хранение настроек вместе с данными может показаться не самым лучшим решением, но в моем понимании оно просто гениально. При такой организации можно забыть о необходимости настройки Obsidian на каждом отдельном рабочем месте. Настроил один раз на одном компьютере, а дальше посредством синхронизации можно использовать всё настроенное на всех своих совместимых устройствах. Более того. Для одного хранилища мне нужна одна тема и такие плагины, для другого требуется совершенно другое оформление и абсолютно другие плагины, ну а третье хранилище должно обойтись минимумом плагинов и быть максимально простым.

Вместе со всеми преимуществами, Obsidian не является Open Source системой, его исходный код не опубликован в открытом доступе, он управляется частной компанией (похоже, что имеющей азиатские корни). Тем не менее Obsidian является бесплатным для использования физическими лицами и компаниями, состоящими из 1 человека. В этом случае оплата может взыматься только за использование фирменной системы синхронизации и публикации заметок. А вот с компаниями немного сложнее. Коммерческая лицензия уже не бесплатная и требует регулярной оплаты и хотя мне не удалось найти конкретные цены на сайте Obsidian, не исключено, что в ближайшем будущем цены для коммерческих пользователей устаканятся и будут доступны для всеобщего доступа.

А вот цены на синхронизацию и публикацию — известны. На январь 2023 они составляют 10$ в месяц за использование сервисов синхронизации и 20$ за использование сервисов публикации. Стоимость, честно говоря, не очень большая и не маленькая, средняя. Но необходимо учитывать, что и синхронизацию, и публикацию можно организовать бесплатно, используя имеющиеся в наличии ресурсы.

Несколько обнадеживает, что Obsidian заявляет, что все заметки останутся нашими и будут доступны даже нашим правнукам и политика Obsidian по этому вопросу не поменяется. Ну, что же, хочется верить, что это действительно так.

Нет похороненным заметкам

В отличие от OneNote и прочих приложений для заметок в Obsidian с самого начала озаботились необходимостью помощи пользователю блокнота с намерением избежать образования очередного кладбища информации и идей. Для этих целей в Obsidian реализовано несколько важных плагинов, позволяющих, по возможности, эффективно управлять заметками, информацией в них и преобразовывать их в свой персональный банк знаний. В Obsidian поддерживается просмотр и маппинг как прямых ссылок с одной заметки на другую, так и обратных ссылок. То есть, находясь в заметке, можно посмотреть какие другие заметки на нее ссылаются. Похожий сервис есть и в WordPress. Если кто-то публикует ссылку на статью в блоге в другом блоге, работающем на WordPress, то через систему Ping Back, оригинальная запись получит соответствующее уведомление и сделает об этом пометку в зоне комментариев.

Помимо ссылок в Obsidian, тоже через плагин, можно посмотреть как глобальный граф всех заметок, так и локальный граф для одной заметки. Граф отображает связи между заметками. При его помощи можно отслеживать насколько хорошо проработаны те или иные области конкретной записной книжки. Если связей между заметками много, то эта область проработана лучше. Если мало, то там еще следует поработать. Связи между заметками образуются посредством установки ссылок (прямых) между ними прямо в теле заметок, либо при помощи тегов, если таковые используются.

Локальный граф в Obsidian

Локальный граф заметок про Obsidian

При начале заполнения блокнота новыми заметками может возникнуть ощущение, что ваш граф не слишком связан. В нем много потерянных, ни с кем не связанных заметок. Это нормальная ситуация. Далеко не всегда сразу удается проследить взаимосвязи между заметками, на это требуется определенное время и усилия. А для ускорения процесса есть еще один инструмент, позволяющий просматривать, а затем анализировать случайную карточку из всей записной книжки. Некоторые называют подобные действия «общением со своим банком знаний», но суть от названия не меняется. Обращение к случайной записи позволяет рано или поздно пройтись по всем карточкам в хранилище и если требуется провести их «рефакторинг», удалить, если карточка уже не актуальна, переписать, если требуется модификация, дополнить ссылками, если в хранилище образовались еще знания по этому же поводу.

Цеттелькастен

Благодаря наличию трех инструментов (ссылки, граф и выборка случайной карточки) в Obsidian можно применять такой метод управления записями о знаниях, как Zettelkasten, он же Slip Box, он же метод «Картотеки». О Цеттелькастен написано немало статей как в регулярных изданиях, так и в сети Интернет, поэтому не буду повторяться о том, кто его придумал, для каких целей и почему его хорошо применять. Приведу лишь основные постулаты Zettelkasten:

    1. Принцип атомарности. Он означает, что каждая заметка должна содержать только одну идею.
    2. Принцип автономии. Каждая заметка должна быть автономной, то есть быть самостоятельной и понятной сама по себе.
    3. Всегда соединяйте заметки.
    4. Объясняйте, почему соединяете заметки. Когда вы соединяете две заметки, убедитесь, что коротко объяснили, почему создаёте связь.
    5. Пишите своими словами. Не превращайте Zettelkasten в помойку из перепостов информации.
    6. Продолжайте ссылаться. Всегда добавляйте к заметкам ссылки, чтобы знать, откуда пришла идея. Это предупредит плагиат и позволит легко вернуться к оригиналу информации.
    7. Добавляйте свои собственные мысли в Zettelkasten.
    8. Не переживайте из-за структуры. Структура создаётся органически во время рефакторинга заметок.
    9. Добавляйте заметки для связи. Это специальные заметки, созданные, чтобы соединять вместе другие заметки и объяснять их связи.
    10. Добавляйте заметки-оглавления. Как только идеи начнут соединяться в темы, добавьте заметки-оглавления.
    11. Никогда не удаляйте. Не удаляйте старые заметки. Вместо того соединяйте их с новыми заметками, которые объясняют, что не так со старыми заметками.
    12. Добавляйте заметки без страха. Самое худшее, что может случиться, что вы добавите заметку, которую не сможете сразу использовать.

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

Стоит ли заводить несколько хранилищ?

В Obsidian можно создавать неограниченное количество хранилищ. И работать потом со всеми ими одновременно или поочередно. Но наличие возможности вовсе не означает обязанность использовать эту возможность. Начинать можно и с одним хранилищем, но если его становится мало, то его довольно просто разделить на несколько. Достаточно только перенести файлы заметок из одного хранилища в другое. Любым доступным способом.

Про синхронизацию

Поскольку Obsidian является просто редактором, то он не обучен синхронизации. Тем не менее ведение блокнотов и заметок в них немыслимо без их синхронизации. Как минимум требуется синхронизировать заметки между компьютером и смартфоном. Ведь, а вдруг что понадобится и на телефоне? Бесспорно, работать с текстом намного удобнее на большом экране, нежели на маленьком экранчике телефона, да еще и без полноценной клавиатуры. Но даже в таком случае есть несколько сценариев, хочется, чтобы на смартфоне оказались заметки из записной книжки. Например, список покупок или информация по совершаемому путешествию, включающая важные моменты типа адреса гостиницы, номера брони, авиарейсы и автобусные маршруты из аэропорта до гостиницы. Кстати, один из факторов побудившим меня уйти с Evernote стал трюк с тем, что несмотря на все усилия информация про гостиницу не подгрузилась в мобильный, а в те времена с интернетом в заграницах было не так просто.

Другой аспект с синхронизацией связан с созданием резервных копий. И хотя в случае с Obsidian хватает запуска архиватора на каталог с заметками раз в неделю, но многим и такой способ в тягость. Куда проще синхронизировать хранилище с облачным устройством, где провайдер услуги позаботится о сохранности ценной для пользователя информацией.

Синхронизацию в Obsidian можно настроить двумя способами: при помощи плагинов и при помощи внешних сервисов. Самый простой способ — использовать синхронизацию своих заметок при помощи сервиса от самого Obsidian. Но его я не буду рассматривать, так как за него хотят небольшую сумму денег и он не так интересен. Остановимся на других вариантах, требующих хоть немного усилий для реализации.

Облачная синхронизация

Самый просто вариант и самый популярный среди пользователей Obsidian — просто использовать услугу облачного диска с синхронизацией папки хранилища. И на этом можно было бы и остановиться. Но есть нюансы. Например, некоторые приложения для синхронизации данных с диска компьютера в облако чрезмерно стараются освободить побольше места на пользовательском диске и синхронизировав файл, удаляют его с локального диска. Его копия остается только в облаке. Некоторые системы при этом оставляют на месте файла заглушку, при обращении к которой происходит оперативная скачка файла. Другие же просто удаляют файл, и он становится невидимым для операционной системы и для Obsidian в том числе. А ведь Obsidian создает индекс файлов в хранилище, в котором хранятся в том числе ссылки между заметками и прочая интересная, но неизвестная информация. И без присутствия файла на своем месте есть высокий риск порчи индекса, что может привести к нежелательным последствиям. Поэтому при синхронизации Obsidian при помощи облачных сервисов всегда следует отключать функцию переноса файлов в облако или включать постоянное хранение файлов на диске для каталогов хранилища целиком.

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

Проблема доступа к заметкам на мобильном

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

В таком случае можно пользоваться не Obsidian, а обычным редактором MD-файлов для мобильного. Просмотреть и отредактировать файл можно, найти его тоже, так как имена файлов у Obsidian «говорящие» и соответствуют заголовку заметки. Ну и поиск среди текстовых файлов тоже работает. Но это все не то, так неудобно. Хочется ощущать всю мощь решения Obsidian и на мобильно тоже.

И здесь можно воспользоваться синхронизацией посредством технологии WebDAV. Многие провайдеры облачных дисков поддерживают работу с облаком посредством WebDAV. Они не афишируют эту функцию, так как хотят, чтобы пользователи работали именно через их фирменное приложение, но поддерживают.

С компьютера синхронизируется хранилище посредством обычного клиента облачного диска, а на мобильный синхронизация происходит при помощи приложения для синхронизации WebDAV и телефона. Для настройки синхронизации необходимо завести отдельный пароль приложения, это современная норма, сейчас все так делают. А затем указать его в настройках приложения. Способ синхронизации (автоматически или в ручном режиме) на мобильном зависит от используемого приложения. Под Android таких приложений, позволяющих синхронизировать облачный диск с накопителем внутри телефона существует множество, только выбирай. Но мне известны случаи удачного использования Folder Sync.

Но и здесь не все так просто. Некоторые пользователи Яндекс.Диск сообщают, что при попытке синхронизации через WebDAV возникает ошибка, не позволяющая дальнейшую синхронизацию. Ошибка связана с использованием папок в структуре хранилища. Тем не менее данную информацию стоит перепроверять, так как ошибка может зависеть от используемого приложения и версии самого Яндекс.Диска на серверной стороне. При работе с облаком от Mail.ru (или как по-нынешнему от VK) подобной проблемы не возникает.

Замечание при работе на мобильном под системой Android

Синхронизировать хранилище со смартфоном — вещь вполне реализуемая и несколькими способами. Но кроме синхронизации требуется еще и удобство работы с заметками и всей записной книжкой. К сожалению, актуальная версия приложения Obsidian пока не оснащена виджетами, при помощи которых можно было бы, например, получить доступ сразу к заметке со списком покупок. А такая функция, по крайней мере мной, используется довольно активно с OneNote.

Для реализации функции быстрого доступа к нужной заметке я обнаружил сразу два способа. Способ первый базируется на использовании [виджета](# Markdown Widget) для Android, позволяющего отображать на экране Markdown-файл. Решение интересное, но у меня не заработало.

Альтернативно можно создать ярлык для запуска Obsidian с автоматическим открыванием нужной заметки. Реализуется эта функция через применение приложения HTTP Shortcuts для создания ярлыка. И встроенной функции Obsidian по выполнению некоторых действий с заметками при передаче в Obsidian URI в качестве аргумента. Например, для открытия конкретной заметки в конкретном хранилище Obsidian, можно вызвать Obsidian с использованием такого URI: obsidian://open?vault=MyVault&file=MyFileInTheVault.md. Тип ярлыка — ярлык браузера. Здесь следует учитывать, что URI должен быть преобразован строго в формат, применяемый для URI, слэши, пробелы и прочие символы должны быть «эскейпированы». Для облегчения преобразования путей в URI разработано множество онлайн сервисов, коими и можно воспользоваться. В Obsidian поддерживается не так много вариантов передачи параметров через URI, поэтому на свет появился плагин расширяющий эту поддержку. При помощи плагина можно не только открывать, закрывать заметки, но и создавать новые, производить поиск и замену текста, редактировать существующие заметки.

Полная синхронизация через WebDAV

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

Во-первых, подключить к Obsidian плагин Remotely-Save. В этом случае сам Obsidian будет дергать WebDAV и синхронизировать файлы в самого себя и в облако. Качество синхронизации тут сильно зависит от качества плагина. Судя по открытым проблемам в репозитории плагина на GitHub — проблем в плагине хватает. Поэтому использовать его нужно с осторожностью — синхронизация не самая простая задача для быстрой реализации, зато испортить файлы может быстро.

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

Для чего же может потребоваться такой вариант «синхронизации»? Он имеет место когда, в качестве сетевого хранилища используется решение без своего клиента синхронизации, например это может быть недорогой NAS (сетевой накопитель) или небольшой сервер под управлением устаревшей операционной системы или с недостаточным количеством ресурсов для установки чего либо современного на подобие NextCloud, SeaFile или OwnCloud.

Кстати, аналогично WebDAV можно попробовать подключить диск работающий и на SFTP.

Syncthing

Syncthing — Open Source реализация синхронизации файлов для компьютеров, серверов и смартфонов. Syncthing не является Peer-to-Peer системой синхронизации, данные синхронизируются только между получателями (пирами), но, если между ними невозможно установить прямое соединение, например, все пиры находятся в зоне серых IP-адресов, то используются сервера-посредники, через которые прогоняется трафик. В качестве сервера посредника для синхронизации или одного из пиров можно использовать и свой сервер (или даже не один), что повысит стабильность и скорость синхронизации. Но, достаточно только двух устройств, например, компьютера и смартфона, одновременно находящихся в сети, для успешного прохождения синхронизации. Да, синхронизируются данные только между устройствами, находящимися в режиме онлайн. Если в схеме синхронизации используется только два устройства, то для успешной синхронизации они оба должны быть включены. Разумеется, весь трафик между пирами шифруется, применяется End-to-End шифрование (E2EE).

Синхронизацию Obsidian можно с легкостью реализовать на основе Syncthing. Система синхронизирует файлы хранилища одинаково как на компьютере, так и на смартфоне. Поэтому проблем с доступом на мобильном нет.

Файлы для игнорирования
При любом способе синхронизации желательно отключить синхронизацию файлов workspace. В workspace Obsidian хранит настройки открытых заметок, и прочего, что относится к конкретной рабочей настройки конкретного устройства в конкретный момент времени. А так как характеристики, как минимум экранов на разных устройствах разное, то и настройки у них будут отличаться.
В Syncthing исключить синхронизацию workspace можно при помощи включения его в шаблоны для игнорирования ignore pattern .obsidian/workspace. В некоторых других системах, например, в Yandex.Disk игнорирование настроить нельзя.

Однако, хотя Syncthing и является одним из самых популярных средств синхронизации для Obsidian, он синхронизирует данные, вернее начинает их синхронизировать, с небольшой задержкой, если сравнивать его с популярными приложениями облачных дисков. Поэтому после того как была завершена работа с последней заметкой, необходимо выдохнуть и только после этого тянуться выключать компьютер.

Синхронизация через свой сервер и CouchDB

Энтузиасты написали очень интересный плагин с правильной системой синхронизации, позволяющий синхронизировать заметки в Obsidian прямо на лету. Obsidian Self-hosted LiveSync работает на основе документарной базы данных CouchDB. CouchDB идеальное решение для хранения такого контента, как текстовые заметки. Именно под такой режим работы она и создавалась. Оттого работает весьма шустро, много ресурсов не занимает.

Разумеется, для CouchDB нужен свой сервер, на который ее можно установить. Сервер должен быть доступен из Интернет, если нам требуется синхронизация из произвольного места сети с ноутбука или смартфона. Более того, для подключения к базе потребуется действующий SSL-сертификат, так как обмен данными должен происходить в зашифрованном виде. Фактически, данные между клиентом и базой данных передаются посредством https и интерфейса REST.

Как происходит синхронизация между клиентом и базой данных
  1. При создании, модификации или удалении заметки Obsidian генерирует событие. Плагин получает событие и переносит все изменения в локальную базу данных PouchDB.
  2. PouchDB автоматически или по команде реплицирует все изменения в базу данных CouchDB установленную на сервере.
  3. Другое устройство, синхронизируемое с CouchDB, получает изменения с сервера и применяет их в своей локальной PouchDB.
  4. Затем плагин производит репликацию изменений из локальной PouchDB в файловую систему Obsidian.

Выглядит немного сложно, но такой вариант позволяет максимально надежно и максимально быстро производить синхронизацию, близкую к режиму онлайн. Более того, благодаря возможности синхронизации данных между серверами CouchDB можно построить довольно крупную сеть для синхронизации и обеспечить все свои локации быстрым доступом к синхронизации. А поскольку в сети постоянно должна работать CouchDB, то синхронизация между отдельными устройствами не требует их одновременного нахождения в режиме онлайн. Более того, можно работать с заметками в режиме offline, а затем при наличии возможности провести синхронизацию.

Кстати, Couch означает «диван» и он выбран для названия базы данных не просто так. Установка базы данных не требует каких-либо особых усилий, например, по заведению сложной схемы для хранения данных, настройки индексов, адаптеров, протоколов трансакций и всего прочего, что обычно требуется для традиционных, реляционных баз данных. С CouchDB все донельзя просто. А локальная база данных PouchDB дает отсылки уже к «сумочке», «мешочку» или «кармашку», эдакому временному хранилищу данных.

Для попробовать существуют контейнеры Docker с подготовленной CouchDB и инструментами Let’s Encrypt для получения сертификатов. Развернуть контейнер можно на любой поддерживаемой системе и наслаждаться работой всего и сразу. Потренироваться на CouchDB без его установки, уже безотносительно к Obsidian, можно на плейграунде Couchbase. Тут доступны разные языки, из которых можно работать с CouchDB, присутствуют и экземпляры самой базы данных. Если же у вас нигде нет ни одного «белого» IP-адреса, а IPv6 проходит мимо, то пробить канал наружу можно при помощи сервиса localhost.run, предоставляющего возможность создавать бесплатные (без SMS и регистрации) SSH-туннели. А как их создавать я подробно описал в своей инструкции.

Еще один вариант по организации CouchDB без особых затрат — зарегистрировать бесплатный аккаунт на IBM Cloudant. «Голубой гигант» долго принюхивался к CouchDB, а потом взял и организовал онлайн-сервис по предоставлению доступа к CouchDB. На бесплатном тарифном плане доступен 1 Гб места, чего для текстовых заметок более чем достаточно. К плюсам IBM можно отнести то, что эти ребята очень хороши в разработке программного обеспечения (но ужасны в маркетинге), поэтому если они уж запустили свой сервис с CouchDB, то можно не сомневаться — система работает. И будет работать до тех пор, пока все разработчики, стоящие за Cloudant, не выйдут на пенсию, а тела самых нестойких из них не истлеют в прах.

Дикие способы синхронизации

Заметки в Obsidian хранятся на диске, в открытом виде, в папках и файлах в формате MD. Markdown является текстовым форматом. Исходные коды для программ — тоже текстовые файлы. В сложных проектах возникает проблема, связанная с синхронизацией исходных кодов от разных разработчиков, в том числе и работающими над одним и тем же фрагментом одной программы. В 2005 году увидела свет первая версия Git — распределенная система для управления исходными кодами.

В основе методологии Git лежит точная такая же схема обмена документами как и в Live Sync (описанном в предыдущем блоке). Создается локальная база данных, в которую реплицируются изменения в локальных файлах, затем она синхронизируется с глобальной базой данных, где происходит глобальная синхронизация. Помимо простой синхронизации, в Git присутствует объединение текстовых файлов, что важно, когда несколько разработчиков внесли изменения в один и тот же фрагмент кода.

Для хранения текстовых (и прочих документов) можно воспользоваться как уже существующими хостингами Git, например, мегапопулярный GitHub. А можно установить свой собственный сервер и синхронизироваться с ним. Так вот, в чем суть идеи — поскольку Obsidian работает с текстовыми файлами в формате Markdown, который сам по себе вырос и окреп в среде GitHub, и является основным форматом для текстовых описаний на GitHub, то почему бы не использовать Git для синхронизации и заметок в том числе?

Ведь никакой особой разницы между VSCode и Obsidian для Git нет. И там, и там можно работать абсолютно одинаково. Конечно, не помешал бы простенький плагин, автоматически запускающий интеграцию изменений, их синхронизацию и объединение. Но и без него система вполне работоспособна. Более того, файлы заметок вообще можно редактировать без Obsidian, а пользоваться VSCode как полноценным редактором.

Одновременная работа в хранилище нескольких персонажей

Когда начинаешь осваиваться с Obsidian, то невольно в голову лезут мысли, мол а ведь с такой системой было бы удобно работать сразу вмногером. Вносить общие знания в общую базу, наращивать ком компетенций. И действительно, работа в подобных системах должна приносить положительную синерги́ю. Но Obsidian не рассчитан на одновременную работу сразу нескольких человек. Вернее не рассчитаны те средства синхронизации, что в основном в нем используются. Исключением, пожалуй, могут выступать только системы синхронизации с применением CouchDB, Git и, возможно, фирменной синхронизации от Obsidian.

И основной проблемой, связанной с работой вмногером, является разрешение конфликтных ситуаций. В Git конфликты разбираются на уровне системы, а вот если использовать, например, Yandex.Disk и произвести одновременные изменения одной и той же заметки из разных мест, то уже тут возникает двоякая ситуация. Если к вам на диск приехало обновление того же файла, над которым вы только что работали, но успели его закрыть, то Яндекс.Диск его перезапишет без лишних вопросов (ну а действительно, а то пойдут пользователи вопросы задавать, что, да как, да почему). Но если в момент прибытия обновления у вас была открыта эта злосчастная заметка, то Obsidian обнаружит конфликт и будет создана копия вашей заметки. Ну хоть данные не пропадут.

При синхронизации через Syncthing все несколько иначе. При использовании SyncTrayzor он обнаружит конфликт и предложит выбор, что с конфликтующими файлами делать. Если же не использовать оболочку SyncTrayzor, а гонять чистый Syncthing в фоне (или в виде сервиса), то он просто автоматически создаст копию конфликтующей заметки. Хорошо, что все заметки затем будут видны в Obsidian и с ними можно попробовать разобраться силами Obsidian, благо он хороший редактор для текстовых файлов.

Поэтому Obsidian далеко не лучший вариант, когда над одним хранилищем работает сразу несколько людей. Работать так можно, но рано или поздно будут возникать конфликты заметок, и их потребуется разрешать ручным способом. В такой ситуации идеально помогла бы методика Check In / Check Out, позволяющая блокировать для редактирования другими людьми файлы, над которыми ты сам работаешь. Но подобный механизм в Obsidian пока не реализован, хотя он и не так сложен в реализации при помощи плагинов.

Поэтому для совместной работы лучше рассмотреть другие системы, например, основанные на механизмах Wiki, вероятно, что они подойдут под задачи несколько лучше, чем Obsidian.

Публикация заметок из Obsidian

Одной из интересных функций Obsidian является возможность публикации заметок для всеобщего обозрения через интернет. Некоторые умудряются публиковать целые записные книжки. Ведь применяемый формат Markdown позволяет с минимальными издержками переводить его в гипертекстовый HTML. В качестве некоторых опубликованных «сайтов» можно привести: Quantum Well, Integral Guide, Mister Chad. Не знаю, как долго проработают эти сайты, ведь официальная функция публикации — платная. Но ознакомиться с ними имеет смысл, чтобы иметь представление о том, как можно затюнинговать свой блокнот.

Хорошо, что Obsidian — открытая система. И если нет желания пользоваться платной публикацией, можно воспользоваться бесплатной. Мне удалось найти аж целых три средства для публикации заметок в сети.

Perlite

Не плагин, а отдельное PHP-приложение позволяющее сформировать полноценный веб-сайт из записной книжки Obsidian. Копируется записная книжка в папку в Perlite, а сам Perlite в структуру веб-сервера и она появляется на вашем веб-сайте. Поддерживаются темы и много всего полезного, в том числе и граф. Для работы Perlite требуется, разумеется, веб-сервер с поддержкой PHP. Кстати, перлит, как и обсидиан — вулканические породы.

Publish by userland

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

Obsidian Static File Server

Еще одно решение для публикации при помощи статического веб-сервера на Python. На этот раз все реализовано через плагин и количество действий пользователя минимизировано. Необходимо только настроить порты и все.

Для чего может потребоваться «публикация» своего блокнота? Ну, кроме как, для доступа к своим накопленным и структурированным знаниям других людей, такая публикация может быть полезна для доступа себя самого к своему блокноту в случае, когда такие устройства, как свой компьютер или свой смартфон недоступны. Допустим, вы готовились к зарубежной поездке, скачали всю необходимую информацию в блокнот Obsidian и загрузили на смартфон. Но, в поездке телефон вышел из строя или вообще был украден. И даже если заметки синхронизировались через облачный диск, навряд ли он вас пустит к себе без дополнительной идентификации через SMS на телефон. А доступная через обычный пароль и свой веб-сервер записная книжка может спасти ситуацию, как некое резервное хранилище, доступное в экстренном случае.

С другой стороны, Obsidian максимально близок к Web и остался всего один шаг, как перенести весь опыт работы с Obsidian просто в окно браузера. Ведь есть тому отличные примеры, например, MS Teams — работает и в виде вкладки в браузере и в виде приложения, которое крутит все то же самое, что есть во вкладке браузера. Закончим с лирическим отступлением и пойдем дальше по вариантам публикации заметок, а не целых блокнотов.

Obsidian QuickShare

Средство для безопасной и быстрой публикации заметок. Всего при помощи одного клика. Публикуемые при помощи плагина заметки будут доступны на сервисе Noteshare.space на протяжении одного месяца. Что примечательно — заметки, отправляемые на сервер, хранятся на нем в зашифрованном виде. Для просмотра заметок требуется ключ. Ключ генерируется при создании ссылки на публикуемую заметку. Если сохранить ссылку или отправить ее получателям, то они смогут просмотреть заметку. Просто и эффективно.

Но что еще интересно — серверная часть бесплатна и может быть установлена на своем оборудовании. В этом случае, вероятно, можно настроить и более длительное время хранения опубликованных заметок.

Obsius Publish

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

Безопасность данных в Obsidian

В последнее время многие усиленно и много думают о безопасности своих данных. И не зря думают. Утечка конфиденциальной информации помогает мошенникам и преступникам разных мастей, не говоря уже о государственных структурах различных стран. Мало ли какая информация была сохранена в заметках записной книжки. Ее не должен получить и прочитать кто-то, кому эта информация не предназначена. Obsidian — штука простая и в плане защиты информации по большей части полагается на защиту операционной системы, в которой он работает.

Под операционными системами, работающими на стационарных компьютерах или ноутбуках, например, Windows, необходимо настроить локальное шифрование хранилищ Obsidian. Подобная функция доступна на всех современных операционных системах. И пользоваться ей стоит всегда, особенно на портативных компьютерах, чей риск «быть забытым в такси» существенно выше среднего.

При работе с мобильного устройства, смартфона, необходимо обеспечивать надежную блокировку входа в устройство. Например, во всех последних версиях Android нельзя получить доступ к внутреннему накопителю телефона, если смартфон заблокирован паролем, ПИН-кодом, отпечатком и тому подобным средством аутентификации. Единственный способ вообще получить доступ к устройству в этом случае — полный сброс устройства, возвращение его к заводским настройкам, что происходит с обязательной безопасной очисткой внутреннего накопителя. Варианты с установленными взломанными root-правами и recovery — существенная брешь в безопасности телефона и стоит избегать подобного.

На серверных устройствах, если они используются как промежуточные сервера для синхронизации (речь идет как раз о файловой синхронизации, а не через базы данных), то аналогично разумно применить шифрованные файловые системы монтируемые в автоматическом режиме по сертификатам из TPM.

При использовании для синхронизации Syncthing для промежуточных серверов можно включить режим «ненадежное устройство». В этом случае на промежуточных устройствах все синхронизируемое будет зашифровано при помощи заданного пароля. Однако, мобильные клиенты Syncthing до сих пор не умеют работать с ненадежными устройствами, поэтому способ по большому счету можно применить только в синхронизации между настольными системами и серверами.

Облачные приложения обычно защищены в достаточной мере для защиты от перехвата данных при синхронизации, но в каком виде данные хранятся в облаке никто достоверно ответить не может, кроме работников самих компаний, предоставляющих услуги хранения данных на облачных устройствах. Как показывает практика, методы шифрования и сохранения конфиденциальности у таких провайдеров далеко не всегда идеальны.

Но не стоит забывать и про сам Obsidian. Помимо самого хранилища Obsidian работает еще и с индексом, в котором хранятся взаимосвязи между заметками (он злоумышленникам не особо интересен), и с так называемыми «снимками» (snap-shots). Снимки — специальные механизмы, позволяющие хранить несколько версий заметки, если она редактируется. Функция снимков устанавливается в Obsidian в виде плагина и настраивается там же (при желании ее вообще можно отключить), она позволяет не только восстанавливать версии заметок, но и показывает, что конкретно изменилось в заметке. Снимки сохраняются не в хранилище, а в папке с данными самого Obsidian. И хранятся там назначенное время, да и снимков одной заметки делается несколько, по мере изменения текста заметки. Поэтому зашифровать только хранилище недостаточно. Нужно обезопасить также и папку с системными данными (зашифровать ее от греха подальше). На «маках» системная папка располагается по пути /Users/yourusername/Library/Application Support/obsidian, на Windows %APPDATA%\Obsidian\, а в Линуксах путь уже $XDG_CONFIG_HOME/Obsidian/ или ~/.config/Obsidian/.

Вложения и удаленное

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

Obsidian, назначение папки дял вложений

Процесс назначения папки папкой для вложений

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

Для решения проблемы с вложениями есть серия разработанных плагинов, поддерживающих удаления вложений, больше не используемых ни в одной из заметок в хранилище. На текущий момент доступно целых три плагина: Obsidian File Cleaner, Obsidian Janitor и Nuke Orphans.

Удаление файлов через Janitor Obsidian

Obsidian Janitor предлагает удалить найденные и никому не нужные файлы

Для себя я остановился на Obsidian Janitor. Он ловит все файлы, которые не являются MD-файлами и на которые нет никаких ссылок. И предлагает их удалить. На скрине выше видно, что помимо действительно уже неактуальных файлов в формате png для удаления попалась еще и зашифрованная заметка. Поведение со стороны плагина совершенно верное. Именно так он и должен был поступить, так как зашифрованная заметка не является MD-файлом и на нее нет ссылок. Помимо зашифрованных заметок в список попадают и заметки созданные в формате canvas и многие другие, чье расширение не md. Для избежания подобной ситуации в Janitor предусмотрен механизм исключения файлов из просмотра на удаление. Шаблоны задаются через регулярные выражения. Например, для исключения всех canvas-файлов из списков на удаление выражение будет следующим \.canvas$. Потренироваться в регулярных выражениях можно на ресурсе Regular expressions 101, сайт помогает без особых хлопот создавать довольно сложные выражения, так как они применяются не только в Obsidian Janitor, но и во множестве других приложений.

При удалении ставших ненужными вложений, Janitor предлагает их удалить либо в папку .trash в структуре хранилища, либо в системную корзину, либо вообще удалить без каких-либо следов. Здесь важно принять решение куда удалять, так как при удалении в .trash вложения никуда не денутся из хранилища, а просто переедут в другой каталог, а из системной корзины их тоже нужно будет удалять. Причем, если хранилище было зашифровано средствами операционной системы, например, через EFS, то в корзину файлы попадут, скорее всего, в открытом виде.

Точно такая же проблема стоит и при обычном удалении заметок в Obsidian. Obsidian предлагает их либо «удалять» в папку .trash в хранилище, где по факту они и остаются, либо в системную корзину, либо удалять полностью, без возможности восстановления. Если в хранилище работы ведутся с конфиденциальными заметками, то лучше рассмотреть вариант полного удаления без следов, но с подтверждением самого факта удаления, во избежание случайной потери заметок.

Аналогичная проблема утечек заметок может возникать при настройке синхронизации. Например, в Syncthing можно настроить сохранение удаленных файлов в специальной скрытой папке. И удаленная заметка или вложение останутся в этой папке на протяжении заданного времени. Их можно оттуда будет восстановить или просто прочитать. В облачных дисках, как правило, тоже присутствует своя корзина, хранящая удаленные файлы на протяжении установленного времени или до переполнения корзины. Этот аспект аналогично стоит учитывать для минимизации потенциальных утечек информации из хранилища.

Шифрование заметок

Но и в самом Obsidian можно организовать шифрование наиболее ценной информации. Реализуется оно через дополнительные плагины. Я обнаружил целых два варианта для шифрования заметок.

Плагин с чарующим названием Cryptsidian на деле оказался мало на что пригодным. Во-первых, он шифрует сразу все хранилище, во-вторых, если при расшифровке ошибиться хоть на граммулечку в пароле, то хранилище будет расшифровано, но вот результат расшифровки мало кому понравится. И восстановить обратно все заметки уже не выйдет, они останутся прочно испорченными. Останется только вытягивать их из резервной копии. На деле решение может пригодиться для крайне редких и специфичных случаев, когда ценность конфиденциальности информации высока, но риск ее утери не так страшен.

Второй плагин Obsidian Encrypt Plugin (он же Meld Encrypt) куда более избирателен. При его помощи можно зашифровать отдельную заметку или только ее часть. При расшифровке проверяется, правильно ли вообще введен пароль и если нет, то расшифровка не происходит.

Шифрование через Syncthing

Inline шифрование при помощи Meld Encrypt

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

Исследуем пределы Obsidian

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

Начал я с того, что мне стало интересно, а сколько вообще файлов сможет переварить Obsidian. Поскольку я работаю под Windows с файловой системой NTFS, то в ней нет никакого (кроме размера диска, разумеется) ограничения на количество файлов в одном каталоге. Я создал один, небольшой файл, порядка 4 килобайт, в формате Markdown, а затем размножил его при помощи очень простого скрипта для PowerShell.

# Генерация файлов копированием из O-test.md
Write-Output "Начало генерации файлов"
Write-Output ""
for ($i = 0; $i -lt 10000; $i++) {
    cpi "O-test.md" "O-test-$i.md"
}
Write-Output ""
Write-Output "Фсе"

В результате у меня получилось что-то около 13 тысяч Markdown файлов в одном каталоге. Разумеется, этот каталог является частью хранилища Obsidian.

Obsidian стартовал как ни в чем не бывало, полторы секунды ушло на подгрузку и инициализацию плагинов и около 10 секунд ушло на индексацию всего объема новых файлов. При этом я мог спокойно работать с заметками во время индексации. Отлично, Obsidian спокойно расправился с более чем превышающим разумный объем хранилищем.

Затем настало время испытать его еще большим объемом. Применяя тот же скрипт, я догнал количество файлов в каталоге до примерно 113 тысяч. Obsidian стартовал, начал индексацию, закончил ее за примерно минуту, а вот потом, при попытке просмотра файлов «ниже по списку» Obsidian завис наглухо. Ну, что же, никто в здравом уме не нагенерирует такой объем файлов в одной папке.

Obsidian - слишком большой файл

Примерно так выглядит текст, который Obsidian не смог открыть

Следующий тест на формирование очень большого файла. Первая остановка — MD-файл объемом в 45 мегабайт. Obsidian смог его открыть, но прочитать содержимое не вышло. Файл оказался слишком большого объема для корректного отображения кодировки UTF-8. Проблема, на мой взгляд, надуманная и вполне может быть исправлена. Хотя если взять один из полноформатных романов Стивена Кинга «Под куполом», вышедшем в 2009 году, то его объем составляет чуть менее двух миллионов символов. Начитка такого объема составляет почти двое суток, а объем текстового файла всего-то пара мегабайт (два миллиона байт). Obsidian отлично переваривает роман Кинга на русском языке (а в кодировке UTF8 каждая русская буква занимает 2 байта, соответственно объем практически вдвое больше, чем у английской (пробелы, запятые и прочие символы все же идут по 1 байту на символ) и даже два романа в одном файле (общий объем примерно 4 Мб).

Но идем дальше. А какого размера файл Obsidian вообще не сможет открыть? Я поднапрягся и сформировал MD-файл объемом в 11 Гб, ну, чтобы два раза не вставать. Но увы, такой файл Obsidian открывать отказался напрочь, причем мотивируя, что максимальный размер файла, который вообще поддерживается Obsidian, составляет жалкие 2 Гб. Это ограничение относится к устаревшим файловым системам, например, к FAT16. Только вот не очень ясно, как запускать Obsidian на Windows 95, где FAT16 была безальтернативной файловой системой. Все современные файловые системы не имеют такого предела по размеру единичного файла.

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

WebClipper для Obsidian

Наличие вменяемого веб-клиппера (плагина для браузера, позволяющего сохранять веб-страницы целиком или частями в записную книжку) некогда было одним из немаловажных факторов успеха для Evernote. Но сегодня ценность наличия веб-клиеппера не настолько высока, ведь всегда есть возможность выделить, скопировать и вставить, если работаешь на стационарном компьютере. А на мобильном вовсю работают копии экрана, которые потом отправляются целиком в записную книжку сразу или после обрезки. Дополнительно можно включить автоматическое преобразование HTML в Markdown при копировании, опция располагается в настройках редактора Obsidian.

Тем не менее для Obsidian разработано несколько веб-клипперов. Для браузеров на основе Chromium и на основе Mozilla. Я попробовал только вариант для Chrome и он мне не понравился тем, что не справился с основной своей задачей. Плагин так и не смог сохранить выделенное в записную книжку. Помимо двух вышеприведенных плагинов присутствуют многочисленные беты и альфы версии от других разработчиков.

Obsidian plugins

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

Плагины можно условно разделить на несколько категорий. В первую категорию Core plugins — входят плагины, разработанные командой Obsidian. Их не так много, но именно они составляют ключевой костяк процессов Obsidian. Core плагины устанавливаются вместе с Obsidian, но их можно отключить в меню настройки.

Вторая группа, более многочисленная, относится к плагинам разработанных сообществом Obsidian (Community plugins). Их можно просмотреть через веб-сайт Obsidian, либо прямо в программе. Далеко не все плагины из этой категории поддерживаются в актуальном состоянии или ими можно безопасно пользоваться.

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

Core plugins

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

Back links, Outgoing links, Random note и Graph — ключевые плагины, если необходима не просто записная книжка, а настоящая система по каталогизации и управлению знаниями. Дополнительно к ним может применяться плагин по работе с хештэгами. Все эти средства предназначаются для постоянного улучшения качества базы знаний.

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

Daily notes облегчает ведение дневника. Создается новая заметка, ее названием автоматически формируется в соответствии с текущей датой. И никаких лишних телодвижений.

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

Canvas

А вот Canvas — настоящая killing feature (убивающая возможность). Плагин появился в поставке Obsidian только в конце 2022, но он поднял редактор на недосягаемую высоту.

Я долго пытался найти адекватный инструмент, при помощи которого можно легко и быстро нарисовать сетевую диаграмму. Не карту памяти (ассоциативную карту, интеллект-карту, ментальную карту, карту мыслей), а именно сетевую, где расположение элементов и связей между ними ничем не лимитировано.

Obsidian Canvas

Пример построения диаграммы по задачам и проблемам при внедрении OpenLiteSpeed

Лет 20, а то и 30 назад, карты (диаграммы) памяти стали очень популярными решениями для «разжевывания» вопросов по косточкам и полочкам. И начало появляться немыслимое количество программных решений, позволяющих строить именно Mind Map диаграммы. Но интеллект-карты хороши в одних вопросах и явно недостаточны для решения (и визуализации) других в силу своей сконцентрированности на центральной «мысли» и невозможности построения полноценных сетевых диаграмм с множеством связей и множеством центральных точек.

Разработчики этих решений так и не смогли перерасти ограничения, лежащие в основе ментальной карты. Максимум, что появлялось, так это возможность добавления дополнительных стрелочек между сущностями и все. Единственным решением, которое позволяло создать именно сетевую диаграмму, могу назвать лишь Scapple. Да и то, только по той причине, что Scapple появился на свет, как визуальное решение для планирования литературных произведений.

А вот Canvas в Obsidian воплотил в себе все необходимые функции для создания сетевых интеллект-карт и при этом не утратил ни толики простоты (как и все в Obsidian). Несмотря на наличие других превосходных решений для рисования диаграмм в Obsidian, Canvas стоит выделить на их фоне особо. В нем не только можно строить диаграммы, но и превращать карточки диаграммы в заметки, либо подключать заметки в виде карточек. Можно помечать цветом карточки, связи между ними. Карточки можно перемещать по полю произвольным образом, изменять их размеры, прокручивать текст внутри карточки и оставлять его так до следующего раза. Единственное, чего пока нет в Canvas, так это автоматического проставления связей между карточками, если они были связаны друг с другом. Но и без этой функции Canvas выше всяких похвал.

Community plugins

Сделать плагин для Obsidian может кто угодно умеющий программировать. В сборнике плагинов от сообщества находится несколько сотен плагинов, решающих те или иные проблемы в Obsidian, либо вносящие улучшения в редактор. Еще больше плагинов не включены в реестр плагинов сообщества, но могут быть установлены без встроенного установщика.

Таблицы

Одна из основных проблем, которая присутствует в Obsidian — работа с таблицами. Ноги проблемы растут исключительно из языка разметки Markdown. Чтобы сформировать таблицу из текста в Markdown нужно дико извернуться. Что очень неудобно.

Впрочем, сообщество обеспокоено тем же вопросом и выпустило несколько вариантов плагинов, которые облегчают работу с таблицами в Obsidian. Плагин Advanced Tables for Obsidian, пожалуй, лучшее решение для работы с таблицами в редакторе. Автор плагина постарался устранить всю боль пользователей, вынужденных работать с таблицами в Markdown. Плагин добавляет помощника по формированию таблиц как непосредственно в текстовое поле редактора, так и в отдельную панель, с которой можно управлять всем процессом.

Инструмент Advanced Tables в Obsidian

Инструмент Advanced Tables в Obsidian

Но даже в случае применения плагина таблицы так и остаются головной болью в Obsidian. Еще один плагин, который может быть полезен при работе с таблицами Obsidian Excel to Markdown Table позволяющий интегрировать табличные части из Excel прямо в текст Obsidian. Плагин может оказаться незаменимым, если предполагается вставлять много данных из Excel.

Работа с текстом

При работе с текстом периодически необходимо выполнять однообразную и рутинную работу. Поскольку Obsidian часто пользуются разработчики программного обеспечения, то они облегчают себе жизнь, придумывая плагины, выполняющие часть работы за них. В качестве отличного примера могу привести плагин Obsidian Text Snippets Plugin. С его помощью можно сформировать некие наборы snippet-ов, которые будут раскрываться в полноценный текст. Нечто наподобие стенографии, только для компьютерного применения.

Помимо Markdown в редакторе Obsidian может применяться и HTML, было бы странно, если HTML и CSS не поддерживались бы в программе, состоящей почти целиком из HTML, CSS и JavaScript. Но работа с HTML разметкой затруднена тем, что в настоящее время в Obsidian отсутствует какая-либо панель для WYSIWYG редактирования текста. Что является еще одним серьезным минусом редактора. В том же Joplin такая панель присутствует и никто на нее не жалуется. Отсутствие возможности породило потребность, которая оказалась закрытой, не полностью, но лишь частично при помощи плагинов от сообщества. Их много, но приведу основные плагины, позволяющие улучшить опыт при работе с текстом в Obsidian.

Плагин cMenu Plugin — если не родоначальник всех плагинов для визуального форматирования текстов в Obsidian, то явно находился где-то рядом, поскольку все остальные плагины, так или иначе, на него ссылаются. Плагин позволяет осуществлять базовое форматирование Markdown при помощи плавающей панели.

Если хочется большего, то в репозитории плагинов Obsidian присутствует плагин со скромным наименованием obsidian-editing-toolbar Plugin. Плагин формирует панель редактора, через которую можно форматировать текст не только в соответствии с Markdown, но и с применением HTML-форматирования. Таким образом, возможность по оформлению текста увеличивается многократно. Единственный минус плагина — его не совсем аккуратный внешний вид на широких мониторах и темных темах.

Плагин Obsidian Markdown Formatting Assistant наполнен функциями до краев. При его помощи можно с легкостью щелчка мышки использовать Markdown форматирование, работать с HTML-тегами, вставлять выражения Latex и буквы греческого алфавита. Но мой интерес вызывает функция визуального просмотра и внедрения выносок. В Obsidian их используется много, запомнить с первого раза все их ну никак не выходит. Приходится использовать подсказки, что замедляет процесс написания и оформления статей и заметок.

Obsidian CodeMirror Options еще один плагин позволяющий форматировать текст, не только при помощи разметки Markdown, но и HTML. В отличие от других плагинов здесь упор сделан на контекстное меню — выделил, нажал нажал кнопкой, применил форматирование. В качестве бонуса плагин использует дополнительное выделение для типовых элементов форматирования Markdown, делает их более заметными и выделяющимися на общем фоне.

Рисуем с Obsidian

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

Начнем с плагина добавляющего функции Excalidraw в Obsidian. Excalidraw можно пользовать и вне Obsidian, а можно при помощи плагина интегрировать его в редактор и создавать новые диаграммы в рисованном стиле, интегрировать заметки в диаграммы и диаграммы в заметки. Штука невероятно мощная и распространяется под лицензией MIT (допускает частное использование, копирование, модификацию и т.п.). Excalidraw можно использовать как самостоятельный продукт на веб-сайте или же установить Self-Hosted решение и обеспечить себе полноценную приватность всех данных (исходные коды и все установщики доступны с GitHub репозитория разработчика Excalidraw). И вся эта мощь бесплатно и в удобном формате внутри Obsidian.

Для приверженцев традиционных ценностей ментального картирования (да, речь о Mind Map), в Obsidian доступен специальный плагин позволяющий создавать интеллект-карты. Плагин Obsidian Mind Map позволяет не создавать карты памяти, а отображать заметки в виде той самой карты памяти, получается некая аналогия графу связей, только в другой форме. Реализована функция на библиотеках markmap (которые интегрируются не только в Obsidian, но и, например, в VSCode).

Для тех, кому и этого мало, в Obsidian есть возможность использовать диаграммы от draw.io (ныне diagrams.net). Возможность реализована аж в двух плагинах. Плагин Draw.io diagram plugin for Obsidian.md поддерживает интеграцию базовых функций «рисования» в Obsidian, зато работает без подключения к интернету. Созданные диаграммы могут быть использованы в виде отдельных записей или же интегрироваться в существующие заметки. А вот плагин Obsidian Diagrams.Net позволяет использовать онлайн-библиотеки форм, но при редактировании требуется подключение к сети. Диаграммы сохраняются в формат svg и доступны в виде отдельных файлов записной книжки.

За последнее время открытое программное обеспечение сделало существенный рывок вперед, в том числе и в способах визуализации информации. Так, draw.io теперь доступен не только в качестве веб-сайта, но и в виде полноценных приложений, которые можно гонять на настольном компьютере. И наконец-то можно с уверенностью сказать «Давай, до свидания!» опостылевшему MS Visio.

Шаблоны

Для удобства ради и повышения продуктивности в Obsidian есть шаблоны заметок. Реализуется механизм через Core плагин, а его настройки довольно просты. Необходимо выбрать папку для шаблонов, в которой разместить MD-файлы, которые и будут выступать в качестве шаблонов для будущих заметок. Единственное отличие от обычного файла — возможность автоматического внедрения даты и времени в новую заметку, создаваемую на основе шаблона.

Для каких целей нужны шаблоны? Они идеально ложатся на решение таких задач, как протокол собрания, ежедневная запись дневника или рефлексия на событие. В общем там, где требуется быстро заполнять на регулярной основе некую структуру. Некий бразилец Filipe Donadio, не поленился и собрал несколько шаблонов регулярных заметок для всех случаев жизни.

Темы и язык

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

Выбор тем в интерфейсе Obsidian

Выбор тем в интерфейсе Obsidian

Но вот темы. Они не требуют перевода и для Obsidian уже существует пара десятков тем, от традиционных белых тем, привычных для офисных продуктов, до высококонтрастных черно-белых вариантов. Выбрать есть из чего, тем более что большинство тем можно настроить в определенных пределах, под свои потребности.

Если нужно что-то поменять в оформлении

Темы, предлагаемые сообществом и Obsidian, конечно, хороши. Но иногда возникает потребность что-то в них изменить. Благодаря Electron и открытой системе вносить изменения во внешний вид Obsidian довольно просто. Для этих целей специально разработан инструмент CSS snippets. При его помощи можно подгружать в конкретному хранилищу небольшие фрагменты CSS-кода, позволяющие изменять стили оформления тех или иных элементов Obsidian.

body {
    --checklist-done-decoration: none !important;
}
/*.markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="x"] {
    --checklist-done-decoration: none !important;
}*/

Например, я использую тему Red Graphite. Но мне не нравится, что выполненные Check Box-ы не только изменяют цвет, но еще и текст в них зачеркивается. Внести изменения в отображение элементов списков можно при помощи приведенного выше кусочка CSS, записанного в файл, сложенного в директорию для snippet-ов и подключенную в Obsidian. По вопросу изменения внешнего вида при помощи snippet-ов в документации Obsidian есть специальный раздел с подробным описанием, что и как делать.

Выноски

Еще одним способом несколько приукрасить, точнее отформатировать, текст, который пишется в заметках — использование так называемых «выносок» (callouts). При помощи выносок можно выделять тот или иной участок текста.

Информационная выноска Obsidian

Пример оформления информационной выноски в темной теме

Всего в Obsidian присутствует возможность использовать 13 различных по оформлению выносок. Выноски относятся к базовым функциям Markdown, поэтому реализуются без плагинов, а их внешний вид можно регулировать при помощи тем или snippet-ов.

Obsidian для писателей

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

Полноформатный роман содержит порядка миллиона символов. Заметки, да и весь текст в Obsidian хранятся в кодировке UTF8. Данная кодировка позволяет использовать на один символ от 1 (для латинских символов) до 4 (для всяческих рунических иероглифов) байт. Русский язык основан на использовании комбинаций букв, но не относится к латинскому алфавиту. Поэтому для кодирования каждой русской буквы используется сразу 2 байта, а не один, как для латиницы. Кстати, далеко не каждый европейский язык оперирует исключительно латинским алфавитом. Местечковые традиции произношения заставили вводить дополнительные обозначения для звуков и, соответственно, такие языки тоже частично кодируются двумя байтами. Это все к тому, что роман на русском языке будет занимать порядка двух мегабайт. С таким объемом Obsidian справляется играючи. Поэтому с этой стороны ограничений нет.

Написать литературное произведение (художественное или нет) можно хоть в Word, хоть в Notepad. Но прелесть IT-технологий в том, что они позволяются выполнить ту же работу несколько проще. В плане писательства заметную популярность приобрели специализированные программные комплексы, позволяющие произвести как минимум декомпозицию произведения на отдельные части. И у автора появляется возможность сосредотачиваться на отдельных частях своего произведения, а методики планирования, та же «пробковая доска» помогают не упускать из видения общую канву произведения. Плюсом идут электронные помощники, отлавливающие ошибки в тексте. И о них ниже.

Проверка правописания

После того как в Microsoft Office отказались от услуг компании Информатик, качество проверки в офисных продуктах сильно упало. Оно просто рухнуло до самых низких подвалов царя Аида. На замену пришли собственные модули Microsoft, которые так и не научились основным премудростям русского языка. А ведь он по праву считается одним из самых сложных языков мира. И даже грамотный человек, исписавший не одну тысячу страниц, порой приходит в недоумение, как же написать то или иное выражение. А уж не сделать ошибку в тексте или поставить запятые только там, где они действительно нужны, вообще вершина мастерства, доступная не каждому журналисту.

В Obsidian доступно минимум два средства для проверки грамотности текста. Одно из них — встроенный поверяльщик, точно такой же, как и во всех браузерах, построенных на движке Chromium. Спел-чекер проверяет текст по мере написания, обладает пользовательским словарем исключений и может работать одновременно с несколькими языками, что на самом деле является отличным улучшением, так как раньше, встроенные в браузеры спелл-чекеры могли работать только с одним языком, что было крайне неудобно. Кстати, по факту именно браузерная проверка на опечатки ловит больше, чем MS Word последней версии.

В качестве альтернативы можно использовать плагин интегрирующий проверку от Language Tool в Obsidian. Сейчас плагин все еще находится на стадии создания и работает не очень, он может проверять только небольшие тексты, а крупную форму, например, как эта статья он переварить уже не в состоянии. Language Tool — относится к открытому программному обеспечению, поэтому им можно пользоваться бесплатно (хотя и имеется подписка на дополнительный сервис) как через веб-сайт, так и установив сервер по проверке на своих мощностях. Но качество проверки именно русского языка не настолько идеально, чтобы результатам работы Language Tool можно было доверять безоговорочно.

Остается только Орфограммка, развитие которой заморозилось уже как несколько лет, да и большие файлы она принципиально не может обработать из-за слишком слабенького сервера.

Публикация и написание

Если конечной целью публикации является блог на основе WordPress, то разумным будет воспользоваться специализированным плагином, позволяющим осуществлять прямую публикацию на сайт WordPress. Плагин может работать как через REST-API, так и через механизм XMLRPC. Первый вариант более предпочтителен, так как для доступа приложения формируется отдельный пароль именно для используемого плагина. Тут важно не забыть, что в качестве имени пользователя необходимо выбирать пользователя, который создал пароль приложения, а не имя этого приложения.

Плагин не осуществляет никакой конвертации текста и разметки, поэтому на стороне WordPress хорошо бы иметь плагин, позволяющий использовать Markdown разметку осуществляет некоторое преобразование разметки Markdown в HTML, однако преобразование не полноценное, например, выноски преобразовываются просто в предформатированные блоки. Также плагин не обновляет опубликованные заметки, он может их публиковать как черновики или как конечные записи блога, а всегда создает новые. Но в отличие от, например, MS Word, где тоже можно писать статьи блога и публиковать их в WordPress, вся мощь Obsidian доступна для написания заметки в полной мере. Вот эта самая статья от начала и до конца написана именно в Obsidian. Кстати, для больших статей, нелишним будет использовать автоматический генератор оглавления, оно позволит пользователям лучше ориентироваться в вашем тексте.

При работе с русским текстом, предназначенным для публикации, настоятельно рекомендуется придерживаться правил русской типографики. В Obsidian поддержку особенностей оформления русскоязычных текстов можно реализовать далеко не оптимальным способом, но хотя бы так, через плагин Obsidian Smart Typography. При его помощи можно вводить специфические символы в текст, такие как многоточие, кавычки лапками, дефис. А вот с тире все не очень здорово, способа его ввести при помощи данного плагина я не обнаружил.

При написании полноформатного литературного произведения всегда встает вопрос о том, как лучшего его писать. Сразу целиком в одном файле или разбить его на составные части? На мой взгляд, для написания большой формы лучше заводить отдельное хранилище, которое будет содержать все, что относится к произведению. А в отношении разбиения на отдельные файлы или использование единого — четкого понимания нет. В Obsidian можно сделать и так и эдак.

При использовании единого файла сильно помогает Outliner (идет как основной плагин) и возможность сворачивания разделов. Если работать с отдельными файлами, например, по файлу на главу или сцену, то необходимо заранее определиться с наименованиями файлов, и тем как Obsidian будет их сортировать. Не очень приятно после окончания работы вручную расстанавливать тысячу файлов в нужном порядке. Кстати, окончательную компиляцию можно провести как внутри Obsidian, применяя инструменты рефакторинга, или же любым внешним средством. А для более серьезной работы со структурой произведения можно применить специальный плагин позволяющий организовать структуру произведения крупной формы. Плагин Longform позволяет воплощать несколько произведений в рамках одного хранилища, управлять списками сцен, подсчитывать количество слов в сцене или всем проекте, устанавливать цели по ежедневным объемам и тому подобное. Но самое интересное, что есть в Longform — организация процесса компиляции финального файла из отдельных частей.

Планирование

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

При помощи плагина Obsidian CardBoard Plugin реализуется механизм «пробковая доска», где визуально и при помощи карточек можно распланировать все произведение. На самом деле этот плагин предназначен для работы с задачами и позволяет организовывать задачи в виде карточек и колонок. В колонках карточки могут организовываться как по дате, так и по тегам. Выполненные карточки можно скрывать в колонках. Колонки с карточками можно представить, в том числе в виде канбан-доски. Плагин содержит множество функций и для его полноценного использования необходимо предварительно ознакомиться с документацией. Методику планирования произведения при помощи карточек я уже рассматривал в блоге на примере использования Trello.

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

Канбан — японская производственная практика нашедшая применение и в мире управления задачами. В Obsidian Канбан реализуется при помощи плагина Obsidian Kanban Plugin. Тут все реализовано как и требуется: карточки, столбцы с карточками, фильтрация и списки.

И в качестве вишенки на тортике в Obsidian есть возможность работать с временными шкалами. Плагин obsidian Timelines позволяет визуально представить карточки в виде вертикального или горизонтального временного ряда. Применение временных рядов для планирования произведений позволяет снять одну из сложных проблем согласованности очередности событий в художественных произведениях, где действия «размазаны» на длительном временном отрезке, а заодно происходят в нескольких потоках. И важно соблюсти их последовательность и непротиворечивость. Применение досок с карточками или отдельных реестров с датами событий не всегда удобно, особенно если потоков больше трех. Для своих произведений я использовал AEON TIMELINE — замечательный продукт, позволяющий визуализировать довольно сложные временные взаимоотношения, но не позволяющий нормально интегрироваться с другими решениями для достижения полного контроля над временным планом. И по большей части произведение планировалось в AEON, но затем возникали трудности с синхронизацией, если происходили изменения на стадии непосредственно написания. При наличии плагина для временного ряда хоть и не обладающего столь выразительными функциями, но интегрированного в экосистему создания произведения, где все под рукой, чувствуешь себя уверенней, особенно в плане того, что не потеряешь нить повествования, если потребуется внести несколько изменений в план развития событий.

Вообще, глядя на Obsidian, понимаешь, что использование такого инструмента, как Scrivener уже не имеет смысла, так как все его функции, за исключением публикации в ePub, можно выполнить в Obsidian. Бесплатно, с наличием нормальной синхронизации, с отсутствием беспокойства по поводу разрушения базы данных с текстом и дней на его восстановление. И в Obsidian куда удобнее писать. При необходимости я могу открыть хоть двадцать окон редактора, писать в одном и сверяться с данными во всех остальных. В Scrivener пошли в другом направлении. Вместо улучшения интерфейса и пользовательского опыта сосредоточились на углублении интеграции лицензионной защиты, да так, что обладая лицензией на использование Scrivener, я пользовался пиратской версией, поскольку она периодически не задавала мне вопросов по поводу серийного ключа. А если есть желание работать исключительно внутри Obsidian, то в репозитории плагинов присутствует как минимум два плагина по экспорту в ePub.

Миграция заметок OneNote в Obsidian

Пожалуй, этот раздел наиболее интересен и раскрывает суть названия статьи. Да, все накопленные записи в OneNote необходимо каким-то чудесным образом перенести в Obsidian. Напомню, Obsidian работает с простой файловой структурой, состоящей из каталогов и файлов в формате Markdown. А формат OneNote является закрытым, т. е. недокументированным и все попытки вытащить информацию из записных книжек крайне затруднены.

В приложении OneNote можно сделать экспорт записей в формат PDF, MHT (HTML-архив, содержащий HTML-файлы, картинки, стили и все прочее, необходимое), форматы MS Word и в архивный формат OneNote (расширение ONEPKG). Экспорт в PDF, Word и MHT не слишком-то интересен, поскольку из этого формата все равно придется каким-то образом получать свои данные. Архивный формат OneNote позволяет экспортировать целиком целый раздел записной книжки и он может пригодиться для его загрузки во внешние системы.

В современных версиях OneNote пользователь не является владельцем своих собственных заметок!
В процессе поиска средства для конвертации я обнаружил, что у меня на диске нигде и ни в каком виде не хранятся мои записные книжки OneNote. Даже если мой облачный OneDrive синхронизируется с папкой локального диска, то на нем присутствуют только ярлыки, ссылающиеся на файлы записных книжек, расположенных в облачном решении OneDrove. И скачать их оттуда тоже нельзя.

Поскольку у меня нет доступа к моим записным книжкам в виде файлов, то наиболее простым способом получить свои заметки в каком-либо формате, с которым работает OneNote, это выгрузить их в архивный формат OneNote. Но, за несколько лет активной работы с OneNote в нем накопилось достаточное количество заметок и разделов, разделенных на несколько записных книжек, чтобы прийти в уныние от факта многочисленного нажимания на многочисленные кнопочки в меню. Да и что потом делать с полученными файлами? Их нельзя открыть нигде, кроме как в OneNote. Поэтому пришлось поискать хоть какое-то альтернативное решение переносу всех заметок руками путем копирования в одном месте и вставке в другое.

Проблематика по экспорту заметок OneNote во что-то, что можно использовать, касается только пользователей Windows. На Linux и Mac используется сильно усеченная версия, которая мало что может принципиально, кроме ведения заметок.

Приложение BitRecover

Незначительный и очень поверхностный поиск по сети дал ссылку на приложение для операционной системы Windows, которое в теории, может провести конвертацию формата OneNote во что-то более полезное. BitRecover в целом предназначен для конвертации многих форматов в другие многие форматы, но поддержки MD в нем нет. Тем не менее я попробовал провести конвертацию OneNote в формат, который может быть полезен для импорта в Obsidian. Но ни с одной попытки программа так и не смогла дать мне адекватного результата. Очевидно, что OneNote последних версий оказался ей не по зубам.

Aspose

Онлайн сервис Aspose позволяет конвертировать одну тучу форматов в другую тучу форматов. Без SMS и регистрации. Он поддерживает форматы OneNote и позволяет осуществлять вывод в MD. Я скормил системе несколько выгрузок из OneNote и о чудо, на выходе получил удобоваримые файлы с текстовой информацией в формате MD и внедренные объекты отдельно. Способом, в принципе, пользоваться можно, за исключением небольшого нюанса.

OneNote по структуре, не подразумевает какой-либо четкой организации информации на странице блокнота. Текст или изображение могут быть помещены в любом месте страницы, а текст в изображении, если он там есть или текст из PDF-документа, если он, ненароком, был внедрен на лист, будет распознан и вставлен в качестве альтернативного описания объекта. При конвертации результирующий MD-файл наполняется множеством служебной текстовой информации, которую придется удалять руками. В каждой заметке.

Второй момент, который несколько омрачает жизнь, так это то, что все листы секции записной книжки OneNote формируются в один MD-файл. Который все равно придется разбирать руками.

Conholdate

Онлайн-сервис Conholdate позиционируется как способный сконвертировать файлы OneNote во все, что душе угодно. Он действительно конвертирует, но вот полученный результат, в виде MD-файла нельзя открыть ничем. Его не берет даже VS Code за годный к просмотру результат. Очередной провал. Вероятно, что сервис не умеет работать с архивными файлами OneNote, а выгрузить целиком записную книжку уже нельзя.

Конвертация с применением Evernote и Joplin

Ребята с сообщества Super User (подразделение Stack Exchange Network, не путать со Stack Overflow) поднапряглись и составили инструкцию, позволяющую провести более-менее автоматизированную конвертацию заметок из неприступного OneNote. Суть метода заключается в импорте заметок OneNote сначала в Evernote, а затем экспорт заметок в фирменный формат Evernote enex с последующим импортом в Joplin. Последний работает на основе Markdown, поэтому впоследствии их можно перетащить и в Obsidian.

Честно говоря, способ так себе. Для получения своих заметок нужно установить еще две записные книжки и прогнать все свои данные через них. Если со стороны Joplin особых вопросов не возникает, то вот к Evernote, с их ненасытным стремлением к монетизации каждого чиха своего пользователя, есть вопросы. А получится ли? Не выйдет ли так, что в определенный момент Evernote вдруг поперхнется и откажется либо принимать новые заметки, либо отдавать уже импортированные?

Вероятно, что и по этой причине тоже, другие пользователи в треде про конвертацию предлагают альтернативные варианты. Например, импортировать сначала все в Evernote, а затем перетащить все в Notion. И только потом экспортировать в любой удобный формат. Хотя лук редьки не слаще.

Полагаю, что в целом указанные методы с применением Evernote могут сработать, особенно если все остальные способы провалились.

Конвертация при помощи скрипта Convert OneNote to Markdown

Энтузиасты на то и есть энтузиасты, чтобы потратить месяц на разработку способа извлечения, хотя перенос руками всех заметок занял бы неделю. Вот и theohbrothers написали скрипт, позволяющий выгрузить из OneNote заметки и сконвертировать их в MD. Скрипт работает на Windows PowerShell и используется для конвертации PanDoc.

Для нормальной работы скрипта в системе должен быть установлен MS Word и MS OneNote, именно классические приложения, а не их современные облачные инкарнации. Напомню, что OneNote являются неотделимой частью MS Office (различных ее редакций) и OneNote нынче нельзя установить в систему без установки компонентов MS Office. А последние въедаются в операционную систему так, что их потом оттуда удалить бывает очень и очень трудно.

Скрипт работает следующим образом. Через внутреннюю автоматизацию выгружает все заметки из OneNote в формат MS Word, а затем средствами PanDoc переводит полученный результат в MD. При этом часть информации обязательно будет утеряна, так как предусмотреть все варианты интеграции объектов, например, файлов в заметки OneNote не может никто.

Скрипты в MS Windows отдельная тема. Они то отлично работают, то натыкаются на разнообразные системы прав в Windows, и не могут то создать объект, то обратиться к файловой системе, то вообще не могут запуститься принципиально. В общем, скрипт у меня не заработал и все усилия на его оживление остались в прошлом.

Конвертация при помощи OneNote Md Exporter

Памятуя об ограничениях скриптов, другой автор alxnbl, сформировал консольное приложение, которое делает примерно все то же самое, что и предыдущий скрипт. Для работы приложения требуются классические приложения MS Word и MS OneNote. Хорошая попытка alxnbl, но в моей установке на Windows 11, с установленным полным пакетом MS Office, включающем еще и MS OneNote приложение максимум, что смогло, только запустить OneNote в режиме исправления записной книжки. Дальше продвинуться не удалось.

Ручной перенос заметок

Возможно, что у кого-то из моих читателей получится сконвертировать свои записные книжки OneNote в формат Obsidian одним из предложенных выше способов, но у меня не вышло и перенос пришлось осуществить в ручном режиме. Что в общем-то и неплохо, так как в этом случае «кладбище знаний» рассортируется, все, что уже неактуально — удаляется, а полезное приводится к нормальному виду.

Заключение

Мне лично очень пришелся Obsidian. Открытый формат хранения, чудовищные возможности для кастомизации, ничем не ограниченное редактирование. Все это позволяет использовать Obsidian множеством различных способов начиная от простой записной книжки со списком покупок и заканчивая системой для управления проектами, инструментом для написания статей и книг, приспособлением для рисования диаграмм и утилитой для управления знаниями. А может быть сразу всем вместе. С другой стороны, Obsidian выглядит как некий конструктор, который пугает своей незавершенностью и необходимостью потратить время, чтобы разобраться во всех функциях и настроить его под себя так, как нужно. И действительно с ним стоит повозиться. А результат окупит все затраченное время с лихвой. Более развитого и удобного инструмента для работы еще поискать и не факт, что получится таковой найти. В частности, настоящая статья появилась на свет как результат собственного изучения Obsidian и попыткой в очень краткой форме изложить основные моменты при работе с этим универсальным редактором, с легкостью превращающимся во все что угодно.

Что до Microsoft и его OneNote. Разработчики OneNote понимают, что они начинают существенно отставать от рынка и постепенно теряют территорию в угоду новому поколению Note-Taking Software, которое уже не просто записные книжки, а полноценные системы управления знаниями. Поэтому в веб-версии OneNote появилась запись, что доступ к заметкам у пользователей будет всегда. Но найти эту запись нелегко, она скрывается под нагромождениями других элементов.

Если Microsoft не похоронит OneNote, как сделала со многими другими продуктами, то с течением времени стоит ожидать две вещи. Первая — полное лишение пользователей полноценного контроля над своими заметками. Они все и всегда будут храниться в облаке, а локально только небольшой процент закэшированных заметок в недокументированном формате. Второе — движение в сторону искусственного интеллекта, который будет не только распознавать текст и речь, переносить распознанное в заметки, но и проявлять некие другие черты, обеспечивающие связанность заметок в записной книжке, их смысловую целостность и возможности по поиску/генерации новых значений. Но, останется ли к тому времени у OneNote активная аудитория?

Update1: небольшой лайфхак. Если не требуется отображение вложения в заметке, а нужна только ссылка на вложение, то перед URL вложения нужно просто убрать восклицательный знак. Способ особенно полезен в случаях, когда хочется открыть вложение, например, pdf-файл, во внешнем приложении (способ пока не работает в мобильной версии).

Update2: при помощи коллективного разума удалось совладать с русской типографикой. Помог мне в этом плагин Templater. Как оказалось вопрос решается довольно просто: создается MD-файл с тем текстом (или функцией) которые необходимо вставить, затем на него добавляется горячая клавиша. И все. Например, для кавычек елочкой код шалона будет следующим «<% tp.file.selection() %>». В этом варианте можно сразу вставлять две кавычки, а может выделить текст и вокруг него вставятся кавычки-елочки. С тире и дефисом проще, достаточно только их вставить в файлы.

Update3: выяснилась еще одна особенность работы Obsidian если хранилище располагается в синхронизируемом каталоге Yandex.Disk. При активной и быстрой работе с созданием новых заметок есть риск появления спонтанных Untitled заметок либо задвоение уже именованных заметок (в конце наименования добавляется (2). Проблема тут кроется в медлительности работы Yandex.Disk и несовершенства его механизмов обработки файлов. При создании новой заметки первоначально создается заметка Untitled. Затем, при задании ей нормального имени файл переименовывается. Но, если уже пошла синхронизация созданного файла, то переименовывание приводит именно к таким последствиям, как появление брошенных Untitled заметок или их задвоение. Поделать с этим ничего нельзя, кроме как не использовать Yandex.Disk.

Update4: в августе 2023 в Obsidian появился "официальный" плагин позволяющий импортировать данные не только из OneNote, но и из других записных книжек. Примечательно, что разработчики учли нежелание Microsoft делиться заметками своих пользователей с самими пользователями, поэтому плагин подключается непосредственно к OneDrive, где и хранятся все заметки. Надеюсь, что подход здравый и импортирование данных будет проходить без пинка и задоринки.

Update5: под конец 2023 года команда Obsidian выкатила обновление за версией 1.5.3. Вроде как обычно, дежурное обновление, но в нем появилась крайне важная функция по нормально работе с таблицами без использования внешних плагинов. Теперь можно создавать, редактировать и удалять таблицы без того, что бы из глаз не текла кровь. Помимо таблиц, появилось форматирование по правой кнопке, в том числе теперь можно изменять типы callouts.



Подписаться
Уведомить о
guest

13 комментариев
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии
Андрей
Андрей
1 год назад

Дружище, благодарю за такой познавательный ДЛИННОЧИТ 🙂 здравия тебе!

Павел
Павел
11 месяцев назад

Отличная статья, только недавно открыл для себя, сей дивный продукт. Надеюсь, что будет продолжение о интересных плагинах и настройках. Кстати, облако IBM не работает без ввода карты. И reddit пользователи, массово жалуются о деактивации их учетных записей в нем, имея при этом местные действующие кредитки.

Иннокентий
Иннокентий
6 месяцев назад

Большое спасибо за такой обширный гайд!
У меня без проблем получилось сконвертировать с помощью инструмента от alxnbl.
Все получилось идеально!

Иггорь
Иггорь
4 месяцев назад

Отличная статья.

Александр
Александр
2 месяцев назад

"можно зашифровать отдельную заметку или только ее часть"
не подскажете, как зашифровать часть заметки? у меня плагин шифрует всю заметку

Александр
Александр
Ответить на  kvv213
2 месяцев назад

спасибо большое за ответ и за статью!
перехожу со скрипом с Evernote на Obsidian, очень непривычно, пытаюсь разобраться

Роман
Роман
1 месяц назад

Всем здравия!
Большинство своих заметок в Эверноуте и Onenote делаю с картинками, иллюстрациями.
Не совсем понял, можно ли при переносе заметок в Обсидиан сохранить формат с картинками? Или надо хранить картинки отдельно?

Роман
Роман
Ответить на  kvv213
1 месяц назад

Тогда буду потихоньку переезжать...
Спасибо за статью! Мотивирует обезопасить всё нажитое. 🙂

Арман
Арман
26 дней назад

Добрый день!

Спасибо большое за такую содержательную статью, она очень большая и правда многобукав =)

Я человек крайне неторопливый, всё думаю над таким вопросом.
У меня есть действующая бессрочная лицензия на продукт MS за 2016 год, в него также входит эта программа OneNote. Покупал я эту лицензию еще давно (до февраля 2022 года в РФ). Не поймите меня неправильно, я не прошу вас меня отговаривать от использования данной программы.

А теперь к вопросам:

  1. Я покопался и вроде нашел расположение своих заметок на компьютере через в папке AppData. Неужели они могут вот так вот просто пропасть с локальной папки на компьютере?
  2. Единственное, что напрягает, так это то, что мне чтобы пользоваться их лицензией за 2016 год нужно обязательно авторизовываться под своей учёткой MS в их продукте OneNote и чтобы ей продолжать пользоваться нужно не выходить из этой учетки. В связи с этим такой вопрос: может ли Microsoft нарушить эту лицензию, и просто меня заблокировать? Это же будет нонсенс, что лицензию, которую я купил, мне просто не дают использовать.
  3. Действительно ли Obsidian технологичнее и лучше OneNote (если брать версию 2016)? Насколько полезен граф со связями заметок, его же нет в OneNote?
  4. Про клабище идей в OneNote хотел бы узнать поподробнее, что вы имеете ввиду? У меня совсем немного заметок в OneNote, перейти могу без проблем на любую другую программу. Если заметок будет много и они будут структурированы, то с ними всё равно будет тяжело работать (типо они превратятся в мусор и хлам)?

С уважением,
Арман.

Арман
Арман
Ответить на  kvv213
26 дней назад

Спасибо большое за ответы мои вопросы! Стало яснее.