SiYuan - новая персональная база знаний

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

· 6 минуты на чтение
SiYuan – Apps on Google Play

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

Знакомство с SiYuan

SiYuan — это система управления персональными знаниями от китайских разработчиков с открытым исходным кодом, которая поддерживает блочное редактирование Markdown. Может использоваться как для управления структурированной, так и неструктурированной информацией. Ориентирована на конфиденциальность и полное оффлайн использование.

Ключевые особенности

По своей сути SiYuan — сложный редактор Markdown на основе блоков. Двунаправленные ссылки (backlinks) есть, все как мы любим. Также есть виртуальные ссылки — это своего рода «ссылка на блок», которая автоматически обнаруживается на основе текста существующей ссылки на блок или имени блока, но на самом деле она не связана с блоком, а только помечена в редакторе.

Само приложение на Electron, здесь без неожиданностей. Русского языка в интерфейсе нет. Данные хранятся в папке рабочего пространства в виде следующей структуры папок:

  • assets используется для хранения вставленных файлов
  • emojis для хранения emoji
  • snippets для хранения фрагментов кода
  • storage для хранения пользовательских запросов, условий, расположения окон и т.п.
  • templates для фрагментов шаблонов
  • widgets для виджетов
  • plugins для плагинов
  • public для хранения опубликованных данных

Остальные папки — это папки для ваших заметок, созданные пользователем. Файлы с расширением  .sy в этой папке записной книжки используются для сохранения данных, формат данных — JSON.

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

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

Также вы можете развернуть Docker образ и запустить серверную часть, доступ к приложению получаете через браузер. Если у вас возникнет желание развернуть образ в Kubernetes, то вот манифест:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: siyuan
  namespace: siyuan
  labels:
    app: siyuan
spec:
  selector:
    matchLabels:
      app: siyuan
  template:
    metadata:
      labels:
        app: siyuan
    spec:
      securityContext:
        runAsNonRoot: true
        runAsUser: 1000
        runAsGroup: 1000
        fsGroup: 1000
      containers:
      - name: siyuan
        image: b3log/siyuan:v3.0.11
        imagePullPolicy: IfNotPresent
        command: [ "/bin/sh", "-c", "--" ]
        args: ["/opt/siyuan/kernel --workspace=/siyuan/workspace/ --accessAuthCode=${AuthCode} --ssl=true"]
        env:
          - name: AuthCode
            valueFrom:
              secretKeyRef:
                name: siyuan-secrets
                key: password
          - name: TZ
            value: "Europe/Moscow"
        resources: 
          limits:
            cpu: 250m
            memory: 512Mi
          requests:
            cpu: 50m
            memory: 64Mi
        ports:
        - containerPort: 6806
        volumeMounts:
        - name: siyuan-workspace
          mountPath: /siyuan/workspace
      volumes:
      - name: siyuan-workspace
        persistentVolumeClaim:
          claimName: siyuan-pvc

---

apiVersion: v1
kind: Service
metadata:
  name: siyuan-service
  namespace: siyuan
spec:
  selector:
    app: siyuan
  ports:
  - protocol: TCP
    port: 6806
    targetPort: 6806
    

Синхронизация между устройствами с end-to-end шифрованием тоже есть, но доступна только после разовой оплаты в 64$ (на момент написания обзора). За эти деньги вы получаете пожизненную возможность синхронизации через S3 или WebDAV вместе с поиском по вложениям. Разработчики сразу рубят на корню, запрещая использовать любые облачные сервисы для синхронизации (iCloud, Syncthing, Dropbox и т.п.).

Синхронизация данных через сторонние сервисы не поддерживается, данные могут быть повреждены.

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

За 148$ разового платежа вы также навсегда получаете 8 Гб облачного хранилища с синхронизацией от самих SiYuan, облачный inbox, а также все плюшки предыдущего уровня.

Также есть поддержка баз данных, эта функция похожа на реализацию в Notion. Две базы данных могут быть соединены через «отношения». Создается БД через команду /Database, представлением по умолчанию является табличное представление. Затем эти две БД соединяются через отношение, в этом примере мы соединили авторов с их работами, а также посчитали количество работ в столбце Works count. А потом легко можем извлечь данные SQL запросом. Это ли не чудо?

Плюсы

Есть приложения для всех основных платформ, а также расширения для браузера (web clipper). Пользовательский интерфейс достаточно удобный. Функция поиска особенно прекрасна, отличный предварительный просмотр до уровня блоков, нет необходимости открывать файлы в новых окнах.

Перечислим прочие функции:

  • бесплатно даже для коммерческого использования (привет Obsidian)
  • cсылки на уровне блока и двунаправленные ссылки
  • поддержка протокола siyuan://, это позволит вам сослаться на кокретный блок в вашей базе знаний и открывать ссылку из других приложений
  • поддеркжа истории изменений
  • пользовательские атрибуты
  • поддержка SQL-запросов
  • математические формулы, диаграммы (в том числе PlantUML), блок-схемы, диаграммы Ганта, временные диаграммы и т. д.
  • web clipper
  • аннотация PDF
  • экспорт и импорт
  • базы данных
  • интервальное повторение
  • подключение OpenAI API
  • несколько вкладок, перетаскивание и разделение экрана
  • шаблоны
  • приложения для Android/iOS
  • Docker образ
  • API
  • маркетплейс плагинов и виджетов от сообщества (правда часть из них на китайском языке)

Минусы

Хотя SiYuan предлагает многообещающие функции, есть некоторые проблемы:

  • Проблемы с производительностью. Пользователи сообщают о задержках и низкой производительности даже на ПК с хорошими характеристиками, что указывает на проблемы с оптимизацией, которые необходимо устранить. Я у себя подобных проблем не наблюдал.
  • Платная синхронизация, но радует, что оплата разовая
  • Отсутствие контроля версий Git
  • Нестандартное управление файлами: решение SiYuan не использовать обычные файлы или файловые структуры Markdown, а использовать JSON может стать препятствием для тех, кто хочет перейти с других систем.
  • Особенности пользовательского интерфейса: проблемы с регистрацией щелчков мыши, непоследовательная функциональность множественного выбора и чрезмерно анимированные всплывающие окна могут мешать работе пользователя. У себя такого не замечал, всплывающие окошки есть, но не очень навязчивы.
  • Тормозящий граф. Представление графа, хотя и полезно, но есть проблемы с производительностью и требует ручного обновления для визуализации изменений.
  • В iOS версии нет возможности отправить контент в заметки

Мои мысли

Быстрая установка приложения, затем экспорт заметок из Logseq и Anytype в Markdown файлы. Затем такой же быстрый импорт в SiYuan и все мои заметки полностью доступны. Синхронизация работает без проблем, есть все основные функции. За время использования не было ни одного случая потери данных. Заметок много, но поиск радует своим широким набором возможностей и скоростью.

Перейду ли я на SiYuan полностью? Нет, вряд ли. Заменит ли SiYuan Logseq? Да, определенно. От Anytype отказаться я пока не смогу, все-таки он имеет более продуманный и дружелюбный интерфейс, прекрасно работает с заметками, легко делиться контентом из мобильных приложений, бесплатная синхронизация. При этом SiYuan отличается продвинутым поиском (а это очень важно для меня), двунаправленными ссылками, поддерживает SQL запросы и работает из любого браузера. В Anytype же не хватает возможностей аутлайнера, нормального поиска. У них до сих пор есть неприятный баг с поиском в импортированных файлах. На данный момент выбираю связку SiYuan + Anytype. Оба продукта находятся в активной разработке, и оба имеют шанс на успех, чего не скажешь о Logseq.

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

Ссылки

GitHub - siyuan-note/siyuan: A privacy-first, self-hosted, fully open source personal knowledge management software, written in typescript and golang.
A privacy-first, self-hosted, fully open source personal knowledge management software, written in typescript and golang. - siyuan-note/siyuan
Anytype - операционная система для жизни
В поисках лучшего программного обеспечения для создания и управления знаниями я натолкнулся на Anytype. Продукт находился в закрытом альфа-тесте и я подал заявку еще в апреле 2021 года. И вот наконец меня отобрали для тестирования и я готов поделиться с вами своими впечатлениями. Философию и концепцию Anytype я честно взял
Гайд по Logseq
Что это? Logseq - это локальный аутлайнер с открытым исходным кодом, который работает с использованием локальных текстовых файлов Markdown и Org-mode. Подходит для базы знаний, организации мыслей, ведения списка дел. Упор делается на том, что Logseq не хранит никакую информацию о ваших заметках на своих серверах. Поддерживает разметку Markdown и