From 54375572e11d23dacb20c5742d171af3072d7b9c Mon Sep 17 00:00:00 2001
From: Alexander Neonxp Kiryukhin <i@neonxp.ru>
Date: Thu, 28 Nov 2024 00:46:17 +0300
Subject: Серьезная реновация
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 content/posts/2024-11-17-obsidian/index.md      | 197 ++++++++++++++++++++++++
 content/posts/2024-11-17-obsidian/logo.png      | Bin 0 -> 47265 bytes
 content/posts/2024-11-17-obsidian/publish.png   | Bin 0 -> 79243 bytes
 content/posts/2024-11-17-obsidian/templater.png | Bin 0 -> 62647 bytes
 4 files changed, 197 insertions(+)
 create mode 100644 content/posts/2024-11-17-obsidian/index.md
 create mode 100644 content/posts/2024-11-17-obsidian/logo.png
 create mode 100644 content/posts/2024-11-17-obsidian/publish.png
 create mode 100644 content/posts/2024-11-17-obsidian/templater.png

(limited to 'content/posts/2024-11-17-obsidian')

diff --git a/content/posts/2024-11-17-obsidian/index.md b/content/posts/2024-11-17-obsidian/index.md
new file mode 100644
index 0000000..c3aea82
--- /dev/null
+++ b/content/posts/2024-11-17-obsidian/index.md
@@ -0,0 +1,197 @@
++++
+title = "Obsidian"
+description = ""
+date = 2024-11-17T22:30:37+03:00
+categories = [ "Без рубрики" ]
+tags = ['it', 'joplin', 'obsidian']
+location = "Казань"
++++
+
+Некоторое время назад я [писал](/posts/2024-07-13-joplin/) про заметочник Joplin.
+
+С тех пор мои вкусы несколько поменялись и я открыл для себя его величество [Obsidian](https://obsidian.md/).
+
+![Obsidian logo](/posts/2024-11-17-obsidian/logo.png)
+
+В целом он такой же заметочник, с ± тем же функционалом, но имеет для меня одну особенность, которая буквально 
+переворачивает всё. Это мощнейшая система плагинов. Серьёзно, я нашел плагины которые покрывают для меня всё, кроме 
+одного (но об этом позже).
+
+## Что такое 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"
+    ```
+```
+
+мы получим все выполненные.
+
+Язык запросов [очень мощный](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);
+}
+%>
+
+## Задачи
+___
+<%
+`- [ ]`
+%>
+
+## Заметки
+___
+
+```
+
+и переходя к сегодняшней заметке я сразу получаю такую заготовку:
+
+{{< figure src="/posts/2024-11-17-obsidian/templater.png" title="Заметка из шаблона" >}}
+
+### Остальные плагины
+
+Остальные тоже крутые, но я их приведу просто списком:
+
+- [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 это же генератор статичных сайтов, куда ты ему будешь отправлять заметку для публикации?» — можешь спросить
+меня ты. А я отвечу что у меня вот такой план:
+
+{{< figure src="/posts/2024-11-17-obsidian/publish.png" title="план-кабан" >}}
+
+То что выделено красным — ещё не существует в природе.
+
+micropub сервер для hugo я уже начал писать. Да, есть nanopub сервер, но у него есть два серьёзных недостатка, это PHP и
+то что его сделал не я.
+
+micropub плагин для obsidian я вижу сделать на основе существующего плагина rest-publish. Ну или как пойдёт.
+
+В общем, меня ждёт ещё очень много весёлого дрочева с этим всем.
+
+## Закругляюсь
+
+Пожалуй, пока на этом всё. Поделился как радостью использования Obsidian, так и планами на пет-проекты, что ещё надо-то?
+
+Если что, пишите комментарии. Лучше всего здесь, но можно и во всяких телеграмах-вкшках.
\ No newline at end of file
diff --git a/content/posts/2024-11-17-obsidian/logo.png b/content/posts/2024-11-17-obsidian/logo.png
new file mode 100644
index 0000000..a54d748
Binary files /dev/null and b/content/posts/2024-11-17-obsidian/logo.png differ
diff --git a/content/posts/2024-11-17-obsidian/publish.png b/content/posts/2024-11-17-obsidian/publish.png
new file mode 100644
index 0000000..85e60e8
Binary files /dev/null and b/content/posts/2024-11-17-obsidian/publish.png differ
diff --git a/content/posts/2024-11-17-obsidian/templater.png b/content/posts/2024-11-17-obsidian/templater.png
new file mode 100644
index 0000000..d5ec186
Binary files /dev/null and b/content/posts/2024-11-17-obsidian/templater.png differ
-- 
cgit v1.2.3