summaryrefslogtreecommitdiff
path: root/content/posts/2024-11-17-obsidian.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/posts/2024-11-17-obsidian.md')
-rw-r--r--content/posts/2024-11-17-obsidian.md240
1 files changed, 0 insertions, 240 deletions
diff --git a/content/posts/2024-11-17-obsidian.md b/content/posts/2024-11-17-obsidian.md
deleted file mode 100644
index 9ecf5f4..0000000
--- a/content/posts/2024-11-17-obsidian.md
+++ /dev/null
@@ -1,240 +0,0 @@
----
-categories:
-- Без рубрики
-date: '2024-11-17T22:30:37+03:00'
-description: ''
-image: files/2024-11-17-obsidian_img/logo.webp
-location: Казань
-tags:
-- it
-- joplin
-- obsidian
-title: Obsidian
----
-
-Некоторое время назад я [писал](/posts/2024-07-13-joplin/) про заметочник
-Joplin.
-
-С тех пор мои вкусы несколько поменялись и я открыл для себя его величество
-[Obsidian](https://obsidian.md/).
-
-В целом он такой же заметочник, с ± тем же функционалом, но имеет для меня одну
-особенность, которая буквально переворачивает всё. Это мощнейшая система
-плагинов. Серьёзно, я нашел плагины которые покрывают для меня всё, кроме одного
-(но об этом позже).
-
-## Что такое Obisidian?
-
-Obsidian представляет собой приложение для ведения персональных баз данных,
-основанное на принципах локальных файлов Markdown. Это значит, что ваши данные
-хранятся в виде обычных текстовых файлов, что обеспечивает максимальную гибкость
-и независимость от облачных сервисов.
-
-Приложение работает на операционных системах: Windows, macOS, Linux, iOS,
-Android.
-
-<!--more-->
-
-## Основные функции и преимущества
-
-1. **Граф связей** — да, он есть уже много где, но нельзя его не упомянуть.
-2. **Markdown** — очень приятно, что все заметки хранятся в Markdown, что
- обеспечивает максимальную интероперабельность и переносимость
-3. **Плагины** — плагины пишутся на JS/TS и их много. Даже не так, их **МНОГО**.
- Что приятно, они скачиваются и лежат в той же директории что и основное
- хранилище, а это важно для следующего пункта
-4. **Синхронизация** — она есть. Но вроде как платная. Но мне это и не
- интересно, я использую Syncthing. Просто шарю через него директорию
- хранилища по схеме оба ноутбука <-> NAS <-> Android. При этом синкаются все
- плагины и настройки.
-5. **Скорость** — не смотря на то, что он написан на проклятом электроне,
- работает достаточно шустро, претензий нет.
-6. **Доска для рисования** — мелочь, конечно, но удобно, когда надо на скорую
- руку накидать небольшую схемку. В конце этого поста как раз есть пример
- такой схемки.
-
-## Минусы
-
-1. **Проприетарность** — Obsidian хоть и в целом бесплатный, но он не свободный
- и даже не opensource. Да, это серьёзный минус, но он компенсируется тем, что
- хотябы вся база данных не в проприетарном формате. И в случае чего можно
- будет с наименьшими проблемами свалить куда-нибудь.
-2. **Electron** — ну это скорей мой личный пунктик. Но при этом приходиться
- смиряться с электроном что на Obsidian что на VSCode (VSCodium, конечно же),
- потому что лучше-то и нет.
-
-Это только то, что сейчас пришло в голову.
-
-## А теперь самое вкусное
-
-Не помню, я упоминал что у него много плагинов? :)
-
-Так вот, поехали, мои самые любимые:
-
-### Dataview
-
-https://blacksmithgu.github.io/obsidian-dataview/
-
-Ну это просто must-have плагин, который позволяет обращаться с вашими заметками
-именно как с базой данных, не меньше.
-
-Например, можно создать новый документ, написать в него
-
-```
- ```dataview
- TASK
- WHERE status = " "
- ```
-```
-
-и волшебным образом вместо этого блока появятся все невыполненные задачи, а вот
-так
-
-```
- ```dataview
- TASK
- WHERE status = "x"
- ```
-```
-
-мы получим все выполненные.
-
-Язык запросов очень мощный[^1], в нём сто́ит разобраться.
-[^1]:https://blacksmithgu.github.io/obsidian-dataview/queries/structure/
-
-Ещё есть возможность делать однострочные запросы, например, в домашней заметке
-(которая у меня открывается по умолчанию) у меня есть ссылка на именно
-сегодняшнюю заметку ежедневного журнала. Сделано вот так:
-
-```
-`=link(dateformat(date(today), "yyyy.MM.dd"))`
-```
-
-### Templater
-
-https://silentvoid13.github.io/Templater/
-
-Этот плагин позволяет мне задать некоторым директориям умолчальный шаблон.
-Например, вот такой у меня шаблон для ежедневных журналов:
-
-```
-<%*
-try {
- // Получаем имя текущей ежедневной заметки
- const noteName = tp.file.title;
-
- // Разбиваем полученное имя на компоненты даты
- const [year, month, day] = noteName.split('.').map(Number);
-
- // Создаём объект Date на основе поученных компонентов
- const currentNoteDate = new Date(year, month - 1, day);
-
- // Вычисляем предыдущий и следующий день
- let previousDayDate = new Date(currentNoteDate.setDate(currentNoteDate.getDate() - 1));
- let nextDayDate = new Date(currentNoteDate.setDate(currentNoteDate.getDate() + 2));
-
- // Форматируем дату обратно в "DD-MM-YYYY"
- const formatDate = (date) => {
- const dd = String(date.getDate()).padStart(2, '0');
- const mm = String(date.getMonth() + 1).padStart(2, '0');
- const yyyy = date.getFullYear();
- return `${yyyy}.${mm}.${dd}`;
- };
-
- const previousDay = formatDate(previousDayDate);
- const nextDay = formatDate(nextDayDate);
-
- // Формируем ссылки
- const baseFolder = tp.file.folder(true);
- const previousNotePath = `${baseFolder}/${previousDay}.md`;
- const nextNotePath = `${baseFolder}/${nextDay}.md`;
-
- // Выводим даты в виде ссылок
- tR += `← [[${previousNotePath}|${previousDay}]] | [[${nextNotePath}|${nextDay}]] →`;
-} catch (error) {
- console.error("Templater Error:", error);
-}
-%>
-
-## Задачи
-___
-<%
-`- [ ]`
-%>
-
-## Заметки
-___
-
-```
-
-и переходя к сегодняшней заметке я сразу получаю такую заготовку:
-
-![Заметка из шаблона](/posts/files/2024-11-17-obsidian_img/templater.webp "Заметка из шаблона")
-
-### Остальные плагины
-
-Остальные тоже крутые, но я их приведу просто списком:
-
-- [tasks](https://publish.obsidian.md/tasks/Introduction) — помогает более
- богато управлять задачами. В частности, у меня проставляет дату завершения
- задачи, и проставляет даты дедлайна и прочее.
-- [reminder](https://uphy.github.io/obsidian-reminder/) — трекает и напоминает
- про задачи
-- [calendar](https://github.com/liamcain/obsidian-calendar-plugin) — просто
- миникалендарь в боковой панели
-- [homepage](https://github.com/mirnovov/obsidian-homepage) — позволяет задать
- произвольную заметку "домашней"
-- [icon-folder](https://github.com/timolins/obsidian-icon-folder) — позволяет
- задавать директориям и заметкам произвольные иконки. Пример есть как раз на
- скриншоте выше.
-- [pomodoro-timer](https://github.com/eatgrass/obsidian-pomodoro-timer) — думаю,
- из названия и так понятно
-- [kanban](https://publish.obsidian.md/kanban/) — шикарнейший канбан плагин
-
-## А что же мне не хватает?
-
-Я упомянул выше что мне кое чего не хватает. А именно, постить заметку в мой
-блог по протоколу [Micropub](https://indieweb.org/Micropub).
-
-Только из-за Obsidian и того, что он использует Markdown я опять [вернулся на
-Hugo](/posts/2024-11-15-hugo/), который так же рендерится из Markdown.
-
-«Но Hugo это же генератор статичных сайтов, куда ты ему будешь отправлять
-заметку для публикации?» — можешь спросить меня ты. А я отвечу что у меня вот
-такой план:
-
-```mermaid
-graph TB
-b1["Заметка в Obsidian"]
-b2["Плагин obsidian-micropub"]
-b3["micropub сервер на моем сервере"]
-b4["вызов hugo"]
-b5["Загрузка или копирование результата на веб сервер"]
-b1 --> |Publish в контекстном меню| b2
-b2 --> |POST neonxp.ru/micropub| b3
-b3 --> |Запись в директорию content блога| b4
-b4 --> |hugo рендерит markdown -> html| b5
-style b1 fill:#28252e, stroke:#754fcc
-style b2 fill:#2e2121, stroke:#c81319
-style b3 fill:#2e2121, stroke:#c81319
-style b4 fill:#222c2c, stroke:#20acaa
-style b5 fill:#222c2c, stroke:#20acaa
-```
-
-То что выделено красным — ещё не существует в природе.
-
-micropub сервер для hugo я уже начал писать. Да, есть nanopub сервер, но у него
-есть два серьёзных недостатка, это PHP и то что его сделал не я.
-
-micropub плагин для obsidian я вижу сделать на основе существующего плагина
-rest-publish. Ну или как пойдёт.
-
-В общем, меня ждёт ещё очень много весёлого дрочева с этим всем.
-
-## Закругляюсь
-
-Пожалуй, пока на этом всё. Поделился как радостью использования Obsidian, так и
-планами на пет-проекты, что ещё надо-то?
-
-Если что, пишите комментарии. Лучше всего здесь, но можно и во всяких
-телеграмах-вкшках.