Гайд по Logseq

· 6 минуты на чтение
Гайд по Logseq

Что это?

Logseq - это локальный аутлайнер с открытым исходным кодом, который работает с использованием локальных текстовых файлов Markdown и Org-mode. Подходит для базы знаний, организации мыслей, ведения списка дел.

Упор делается на том, что Logseq не хранит никакую информацию о ваших заметках на своих серверах. Поддерживает разметку Markdown и Emacs Org Mode. На странице проекта разработчики говорят спасибо другим продуктам, которыми они вдохновлялись: Roam Research, Org Mode, Tiddlywiki, Workflowy и Cuekeeper.

Разработка ведется с ноября 2020 года, репозиторий на Github уже набрал 9k звездочек.

Если вы еще не знакомы с Obsidian или Roam Research, перед тем, как читать дальше, рекомендую посмотреть вот эти посты:

Приложения

  • Есть приложения для Windows, Linux, Mac. Да, на электроне.
  • Приложения для Android и iOS в альфа-тесте.
  • Также можно работать через web, используя сайт разработчика logseq.com для открытия локального хранилища. Поскольку проект с открытым исходным кодом - никто не мешает развернуть веб-интерфейс на своем оборудовании. Владельцы мобильной техники Apple пролетают, Safari не поддерживает HTML5 file API, остается только использовать приложение.

Структура хранилища

Хранилище состоит из нескольких папок:

  • assets - для хранения рисунков, документов и т.п.
  • journals - папка с ежедневными журналами
  • logseq - папка для хранения конфигурации хранилища
  • pages - созданные пользователем страницы
    Сами страницы хранятся в виде обычных текстовых файлов, никаких сюрпризов.

Начало работы

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

При нажатии Enter создается новый блок, а Shift+Enter создаст новую строку в текущем блоке. По нажатию / открывается меню команд, которые позволяют вставить рисунок, документ, выбрать дату, создать запрос, сделать ссылку на другую страницу или блок и т.п.

Набрав [[ вы сможете сделать ссылку на другую страницу, а набрав (( - на любой блок. Tab и Shift+Tab управляют отступами блока.

Дела и задачи

Logseq включает в себя две встроенные схемы работы с задачами:

  • LATER -> NOW -> DONE (по-умолчанию)
  • TODO -> DOING -> DONE
    Переключение между схемами делается в настройках.

Существуют два способа создать задачу:

  • Нажать Ctrl/Cmd+enter
  • Ввести любое из ключевых слов: /LATER, /NOW, /DONE, /TODO.

Приоритет задачи задается командами: /A, /B, /C. Также можно задать срок командой /Deadline, запланировать начало выполнения командой /Scheduled. Там же можно задать периодичность, если задача повторяющаяся.

При наступлении срока задачи или связанной с задачей датой, на странице с журналом появляется список этих задач (см. скриншот). Есть несколько предустановленных запросов: "Просроченные задачи", "Текущие задачи", "Ближайшие задачи", но их можно исправить или добавить любой по своему желанию через настройки.

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

Сравнение с конкурентами

По своей сути Logseq очень похож на Roam Research. Два очевидных преимущества Logseq:

  • контроль над данными у пользователя
  • бесплатно!
    Если у вас уже есть база в Roam Research, то ее можно легко импортировать, через меню Import.

Если сравнивать с Obsidian, то основное отличие - это наличие WYSIWYG редактора, markdown разметку вы видите только в текущем редактируемом блоке. Именно по этой причине мне не зашел Obsidian. Ну и открытый исходный код - тоже большой плюс.

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

Особенности

  • Открытый исходный код, возможность self-hosted
  • Бесплатно
  • Написан на Clojure
  • Используемая база данных - Datascript
  • Поддерживает разметку markdown и Emacs Org Mode
  • Нативной синхронизации пока нет, но будет доступна в платной подписке Logseq Pro. Также в подписке обещают совместную работу
  • Интеграция с Zotero
  • Нет веб-клиппера

Свойства блоков

Свойства могут быть добавлены на страницу или блок. Задаются в виде пары ключ-значение так же, как и в Roam Resarch: author:: shady2k.
При включении опции Timetracking в каждый блок автоматически добавляются свойства updated-at и created-at.

Пример структуры блока в БД:

			  {:block/uuid #uuid "61dea598-0fa1-4c8d-b453-ce80effc3217",
			   :block/properties {},
			   :block/journal? false,
			   :block/left {:db/id 1550},
			   :block/format :markdown,
			   :block/content "По своей сути Logseq больше похож на Roam Research.",
			   :db/id 1551,
			   :block/path-refs [{:db/id 1545}],
			   :block/parent {:db/id 1550},
			   :block/unordered true, 
			   :block/page {:db/id 1545}}

Синонимы

Да, Logseq умеет синонимы, достаточно указать свойство alias в первой строке: alias:: яблоки, яблоку, apple. Поиск при этом работает отлично и перенаправляет на основную страницу вне зависимости от того, по какому синониму страница найдена.

Вот как выглядит такой блок в БД:

		  {:block/alias [{:db/id 1568} {:db/id 1569} {:db/id 1570}],
		   :block/uuid #uuid "61dea917-a22c-4a99-8799-640682dc3a9b",
		   :block/properties {:alias #{"яблоки" "яблоку" "apple"}},
		   :block/journal? false,
		   :block/updated-at 1641982261586,
		   :block/created-at 1641982234290,
		   :block/format :markdown,
		   :db/id 1564,
		   :block/name "яблоко",
		   :block/file {:db/id 1566}, 
		   :block/original-name "Яблоко"}

Графы

Они есть у всех конкурентов, заявляется, что глядя на граф можно найти какие-нибудь неожиданные идеи, увидев как на графе они связаны через какой-нибудь узел. Ну не знаю, у меня как-то не сложилось. Что важно: Logseq умеет скрывать страницы, созданные из ежедневного журнала, различные встроенные страницы, что позволяет убрать "мусор", граф становится более наглядным. Также можно прямо на графе осуществить поиск по названию узла.

Запросы

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

  • Простой
    {{query Поисковый запрос (between -7d +7d) }}
  • Сложный использует Datalog для написания запросов
#+BEGIN_QUERY
{:title "All tasks"
 :query [:find (pull ?b [*])]
 :where
 [?b :block/marker ?m]
 [(not= ?m "nil")]}
 #+END_QUERY

Плагины и темы

Не так давно открылся marketplace с плагинами и темами оформления в режиме теста. Очевидно, что пока их не очень много. Но это только начало.

Публикация

Logseq поддерживает публикацию своей базы знаний. Процесс выглядит так:

  • Отмечаете нужные страницы публичными добавлением свойства public:: true, либо делаете все страницы публичными в настройках
  • Делаете экспорт графа из меню
  • На выходе вы получаете набор статических файлов, которые можно разместить в Gihub pages, Vercel или на своем веб-сервере

Синхронизация

Да, это больной вопрос и здесь. Изначально, когда была только web-версия, существовал только один вариант синхронизации: через github. Не так давно команда Logseq объявила, что эту синхронизацию отключат и создают свой сервис синхронизации, который, конечно же, будет платным и по подписке.

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

Некоторым удобно использовать git, особенно, если развернуть свой локальный, например, с помощью Gitea. На Github, даже в приватный репозиторий, я бы не рискнул заливать свою базу знаний.

Для iOS есть замечательное приложение Working Copy, которое позволяет работать с git через удобный интерфейс. Приложение поддерживает автоматизацию, народ настраивает так, чтобы при открытии приложения делался автоматический pull, а при закрытии - commit и push. В магазине приложение бесплатное, но без оплаты не позволяет делать commit и push. Конечно цена не самая низкая, но обещают, что платить нужно только один раз, но есть нюансы.

Мои впечатления

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

Оказалось очень удобно хранить фрагменты кода, в Logseq используется CodeMirror. Что особенно радует, при нажатии "Выделить все" выделяется только код.

Для синхронизации я выбрал решение с git. Да, необходимость синхронизировать файлы вручную не радует, но и у Obsidian ситуация похожая: не хочешь платить за официальную синхронизацию - мучайся.

Чего очень не хватает во всех этих продуктах - это двусторонней синхронизации с календарем. Вот создал я задачу в Logseq, вовремя не заглянул - пропустил. Хочется каких-то нотификаций на телефоне.

Еще есть проблема с самодисциплиной. Приучить себя записывать - это сложно, здесь нужна привычка. Часто бывает так, что не записал, не придал значения, а потом на восстановление информации приходится тратить много времени. А еще бывает так, что тот замечательный сайтик, где вы нашли информацию, может исчезнуть. Поэтому выбрать заметочник - это только половина дела, важно не забывать в него писать :)

Отлично, мне нравится, как попробовать?

Проще всего зайти на сайт https://logseq.com/ и пощупать руками.

Приложения качать здесь: https://github.com/logseq/logseq/releases

Если появятся вопросы, у Logseq есть активное сообщество в Discord, где вам обязательно помогут.

Ссылки