Новый пост
This commit is contained in:
parent
da61be9f9a
commit
1c1ae00942
13 changed files with 468 additions and 5 deletions
200
content/notes/Backup rsync.md
Normal file
200
content/notes/Backup rsync.md
Normal file
|
@ -0,0 +1,200 @@
|
||||||
|
+++
|
||||||
|
title = "Бекап linux системы с помощью rsync"
|
||||||
|
tags = ["linux"]
|
||||||
|
+++
|
||||||
|
|
||||||
|
# Вносим в crontab
|
||||||
|
|
||||||
|
```
|
||||||
|
rsync -v --archive --compress --progress --delete-after --force --partial --exclude-from=/home/$USER/excludes.txt /home/$USER/ 192.168.50.2:/volume1/NetBackup/NeonXPLaptop
|
||||||
|
```
|
||||||
|
|
||||||
|
# Пример excludes.txt
|
||||||
|
<!--more-->
|
||||||
|
```
|
||||||
|
.android
|
||||||
|
.AndroidStudio*/
|
||||||
|
Android/Sdk
|
||||||
|
.gradle
|
||||||
|
.gvm
|
||||||
|
.grails/
|
||||||
|
.grails_history
|
||||||
|
.kde/share/apps/nepomuk
|
||||||
|
.local/share/notbit
|
||||||
|
.local/libvirt
|
||||||
|
.local/share/libvirt
|
||||||
|
.vagrant
|
||||||
|
.vagrant.d
|
||||||
|
.wine
|
||||||
|
.twister
|
||||||
|
twister
|
||||||
|
.local/share/Steam
|
||||||
|
.var/app/com.valvesoftware.Steam/.local/share/Steam
|
||||||
|
.steam
|
||||||
|
Steam
|
||||||
|
.PlayOnLinux
|
||||||
|
.local/share/lutris/runners/wine/
|
||||||
|
Видео
|
||||||
|
.docker/machine
|
||||||
|
.local/share/containers
|
||||||
|
.gvfs
|
||||||
|
.local/share/gvfs-metadata
|
||||||
|
.Private
|
||||||
|
.dbus
|
||||||
|
.cache
|
||||||
|
.var/app/*/cache
|
||||||
|
.var/app/*/.cache
|
||||||
|
.Trash
|
||||||
|
.Trash-1*
|
||||||
|
.local/share/Trash
|
||||||
|
.cddb
|
||||||
|
.aptitude
|
||||||
|
.npm
|
||||||
|
.nvm
|
||||||
|
.adobe
|
||||||
|
.macromedia
|
||||||
|
.xsession-errors
|
||||||
|
.xsession-errors.old
|
||||||
|
.wayland-errors
|
||||||
|
.local/share/RecentDocuments
|
||||||
|
.recently-used
|
||||||
|
.recently-used.xbel
|
||||||
|
recently-used.xbel
|
||||||
|
.thumbnails
|
||||||
|
.thumb
|
||||||
|
Thumbs.db
|
||||||
|
.DS_Store
|
||||||
|
.localised
|
||||||
|
.CFUserTextEncoding
|
||||||
|
.zcompdump*
|
||||||
|
.wget-hsts
|
||||||
|
.cups
|
||||||
|
.subversion
|
||||||
|
.virtualenvs
|
||||||
|
.Xauthority
|
||||||
|
.ICEauthority
|
||||||
|
.gksu.lock
|
||||||
|
.pulse
|
||||||
|
.pulse-cookie
|
||||||
|
.esd_auth
|
||||||
|
.VeraCrypt-lock-*
|
||||||
|
.kde/share/apps/RecentDocuments
|
||||||
|
.kde4/share/apps/RecentDocuments
|
||||||
|
.kde/share/apps/klipper
|
||||||
|
.kde4/share/apps/klipper
|
||||||
|
.local/share/klipper
|
||||||
|
.kde/share/apps/okular/docdata
|
||||||
|
.kde/share/apps/gwenview/recentfolders
|
||||||
|
.kde4/share/apps/okular/docdata
|
||||||
|
.kde4/share/apps/gwenview/recentfolders
|
||||||
|
.local/share/okular/docdata
|
||||||
|
.local/share/org.kde.gwenview/recentfolders
|
||||||
|
.kde/share/apps/kmess/displaypics
|
||||||
|
.kde4/share/apps/kmess/displaypics
|
||||||
|
.kde/share/apps/kmess/customemoticons
|
||||||
|
.kde4/share/apps/kmess/customemoticons
|
||||||
|
.local/share/tracker
|
||||||
|
.local/share/torbrowser
|
||||||
|
.mozilla/firefox/*/Cache
|
||||||
|
.mozilla/firefox/*/minidumps
|
||||||
|
.mozilla/firefox/*/.parentlock
|
||||||
|
.mozilla/firefox/*/urlclassifier3.sqlite
|
||||||
|
.mozilla/firefox/*/blocklist.xml
|
||||||
|
.mozilla/firefox/*/extensions.sqlite
|
||||||
|
.mozilla/firefox/*/extensions.sqlite-journal
|
||||||
|
.mozilla/firefox/*/extensions.rdf
|
||||||
|
.mozilla/firefox/*/extensions.ini
|
||||||
|
.mozilla/firefox/*/extensions.cache
|
||||||
|
.mozilla/firefox/*/XUL.mfasl
|
||||||
|
.mozilla/firefox/*/XPC.mfasl
|
||||||
|
.mozilla/firefox/*/xpti.dat
|
||||||
|
.mozilla/firefox/*/compreg.dat
|
||||||
|
.mozilla/firefox/*/pluginreg.dat
|
||||||
|
.mozilla/seamonkey/*/Cache
|
||||||
|
.mozilla/seamonkey/*/minidumps
|
||||||
|
.mozilla/seamonkey/*/.parentlock
|
||||||
|
.mozilla/seamonkey/*/blocklist.xml
|
||||||
|
.mozilla/seamonkey/*/extensions.sqlite
|
||||||
|
.mozilla/seamonkey/*/extensions.rdf
|
||||||
|
.mozilla/seamonkey/*/extensions.ini
|
||||||
|
.mozilla/seamonkey/*/xpti.dat
|
||||||
|
.mozilla/seamonkey/*/compreg.dat
|
||||||
|
.mozilla/seamonkey/*/pluginreg.dat
|
||||||
|
.thunderbird/*/Cache
|
||||||
|
.keychain
|
||||||
|
.komodoedit
|
||||||
|
.gnupg/rnd
|
||||||
|
.gnupg/random_seed
|
||||||
|
.gnupg/.#*
|
||||||
|
.gnupg/*.lock
|
||||||
|
.gnupg/gpg-agent-info-*
|
||||||
|
.config/google-chrome/ShaderCache
|
||||||
|
.config/google-chrome/*/Local Storage
|
||||||
|
.config/google-chrome/*/Session Storage
|
||||||
|
.config/google-chrome/*/Application Cache
|
||||||
|
.config/google-chrome/*/History Index *
|
||||||
|
.config/google-chrome/*/Service Worker/CacheStorage
|
||||||
|
.config/google-chrome/*/WebStorage/*/CacheStorage
|
||||||
|
.config/chromium/*/Local Storage
|
||||||
|
.config/chromium/*/Session Storage
|
||||||
|
.config/chromium/*/Service Worker/CacheStorage
|
||||||
|
.config/chromium/*/Application Cache
|
||||||
|
.config/chromium/*/History Index *
|
||||||
|
/snap/chromium/common/.cache
|
||||||
|
/snap/chromium/*/.config/chromium/*/Service Worker/CacheStorage
|
||||||
|
/snap/chromium/*/.local/share/
|
||||||
|
.gradle/caches
|
||||||
|
/.m2/repository
|
||||||
|
.local/share/baloo
|
||||||
|
.local/share/zeitgeist
|
||||||
|
.local/share/akonadi
|
||||||
|
.purple/icons
|
||||||
|
.guayadeque/cache.db
|
||||||
|
.java/deployment/cache
|
||||||
|
.icedteaplugin
|
||||||
|
.icedtea
|
||||||
|
.gnome2/epiphany/favicon_cache
|
||||||
|
nohup.out
|
||||||
|
.config/libreoffice/4/cache
|
||||||
|
.config/*/Cache
|
||||||
|
.config/Atom/*Cache
|
||||||
|
.config/Atom/IndexedDB
|
||||||
|
.atom/compile-cache/
|
||||||
|
.vim/bundle/*
|
||||||
|
.viminfo
|
||||||
|
.vscode-oss/extensions/*
|
||||||
|
.vscode/extensions/*
|
||||||
|
.config/Code - OSS/logs/
|
||||||
|
.config/Code/logs/
|
||||||
|
.config/Code/CachedData/*
|
||||||
|
.config/VSCodium/CachedExtensionVSIXs
|
||||||
|
.config/VSCode/CachedExtensionVSIXs
|
||||||
|
.config/VirtualBox/VBoxSVC.log*
|
||||||
|
.config/VirtualBox/VBoxGuestAdditions_*
|
||||||
|
.cargo
|
||||||
|
.rustup
|
||||||
|
go/pkg/mod/cache
|
||||||
|
.nv/GLCache
|
||||||
|
.config/**/blob_storage
|
||||||
|
.config/**/Application Cache
|
||||||
|
.config/**/Cache
|
||||||
|
.config/**/CachedData
|
||||||
|
.config/**/Code Cache
|
||||||
|
.config/**/GPUCache
|
||||||
|
.config/**/Service Worker/CacheStorage
|
||||||
|
.var/app/**/blob_storage
|
||||||
|
.var/app/**/Application Cache
|
||||||
|
.var/app/**/Cache
|
||||||
|
.var/app/**/CachedData
|
||||||
|
.var/app/**/Code Cache
|
||||||
|
.var/app/**/GPUCache
|
||||||
|
.var/app/**/Service Worker/CacheStorage
|
||||||
|
.config/scc/daemon.socket
|
||||||
|
Загрузки
|
||||||
|
.config/yandex-browser
|
||||||
|
Sync
|
||||||
|
snap
|
||||||
|
.local/share/TelegramDesktop
|
||||||
|
.local/share/Zeal
|
||||||
|
.thunderbird
|
||||||
|
```
|
23
content/notes/Docker ALT Linux.md
Normal file
23
content/notes/Docker ALT Linux.md
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
+++
|
||||||
|
title = "Docker в AltLinux"
|
||||||
|
tags = ["linux", "docker"]
|
||||||
|
+++
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
|
||||||
|
Установить docker можно следующей командой:
|
||||||
|
|
||||||
|
```
|
||||||
|
apt-get install docker-engine
|
||||||
|
```
|
||||||
|
|
||||||
|
Добавить пользователя в группу docker;
|
||||||
|
```
|
||||||
|
usermod ИМЯ_ПОЛЬЗОВАТЕЛЯ -aG docker
|
||||||
|
```
|
||||||
|
|
||||||
|
Затем необходимо запустить соответствующую службу:
|
||||||
|
|
||||||
|
```
|
||||||
|
systemctl enable --now docker
|
||||||
|
```
|
11
content/notes/Docker context.md
Normal file
11
content/notes/Docker context.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
+++
|
||||||
|
title = "Docker context"
|
||||||
|
tags = ["linux", "docker"]
|
||||||
|
+++
|
||||||
|
|
||||||
|
Постоянно забываю как создавать новый контекст докера. Сохраню здесь чтобы не забыть.
|
||||||
|
|
||||||
|
```
|
||||||
|
docker context create curie --docker "host=ssh://neonxp.ru"
|
||||||
|
docker context use curie
|
||||||
|
```
|
8
content/notes/Скачивание сайта.md
Normal file
8
content/notes/Скачивание сайта.md
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
+++
|
||||||
|
title = "Рекурсивное скачивание всего сайта"
|
||||||
|
tags = ["linux"]
|
||||||
|
+++
|
||||||
|
|
||||||
|
```
|
||||||
|
wget -rk -np -nc -U "Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20110328 Firefox/24.0" --wait=5 --random-wait https://example.com
|
||||||
|
```
|
22
content/notes/Фикс mp3 тегов.md
Normal file
22
content/notes/Фикс mp3 тегов.md
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
+++
|
||||||
|
title = "Исправление кодировок тегов mp3 файлов"
|
||||||
|
tags = ["linux", "mp3"]
|
||||||
|
+++
|
||||||
|
|
||||||
|
# Установка mutagen
|
||||||
|
|
||||||
|
```
|
||||||
|
pip3 install mutagen
|
||||||
|
```
|
||||||
|
|
||||||
|
# Исправление одного файла
|
||||||
|
|
||||||
|
```
|
||||||
|
mid3iconv -e CP1251 -d bad.mp3
|
||||||
|
```
|
||||||
|
|
||||||
|
# Исправление целой коллекции
|
||||||
|
|
||||||
|
```
|
||||||
|
find /media/Music/ -iname "*.mp3" -print0 | xargs -0 mid3iconv -e CP1251 -d
|
||||||
|
```
|
|
@ -8,9 +8,9 @@ title = 'Обо мне'
|
||||||
<li class="p-name">
|
<li class="p-name">
|
||||||
<span class="p-given-cname">Александр</span> <span class="p-nickname">NeonXP</span> <span class="p-family-name">Кирюхин</span>
|
<span class="p-given-cname">Александр</span> <span class="p-nickname">NeonXP</span> <span class="p-family-name">Кирюхин</span>
|
||||||
</li>
|
</li>
|
||||||
<li>E-mail: <a href="mailto:i@neonxp.ru" class="u-email">i@neonxp.ru</a></li>
|
<li>E-mail: <a href="mailto:i@neonxp.ru" rel="me" class="u-email">i@neonxp.ru</a></li>
|
||||||
<li>Jabber: <a href="xmpp:i@neonxp.ru" class="u-jabber">i@neonxp.ru</a></li>
|
<li>Jabber: <a href="xmpp:i@neonxp.ru" rel="me" class="u-jabber">i@neonxp.ru</a></li>
|
||||||
<li>PGP: <a href="/files/key.asc" class="u-key">7282 5661 A858 FFBD 0EF3 8BD5 35E3 3E1A B777 6B39</a></li>
|
<li>PGP: <a href="/files/key.asc" rel="pgpkey" class="u-key">7282 5661 A858 FFBD 0EF3 8BD5 35E3 3E1A B777 6B39</a></li>
|
||||||
<li><span class="p-locality">Казань</span>, <abbr class="p-region" title="Республика Татарстан">РТ</abbr>, <span class="p-country-name">Российская Федерация</span></li>
|
<li><span class="p-locality">Казань</span>, <abbr class="p-region" title="Республика Татарстан">РТ</abbr>, <span class="p-country-name">Российская Федерация</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
196
content/posts/2024-11-17-obsidian.md
Normal file
196
content/posts/2024-11-17-obsidian.md
Normal file
|
@ -0,0 +1,196 @@
|
||||||
|
+++
|
||||||
|
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](/img/posts/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);
|
||||||
|
}
|
||||||
|
%>
|
||||||
|
|
||||||
|
## Задачи
|
||||||
|
___
|
||||||
|
<%
|
||||||
|
`- [ ]`
|
||||||
|
%>
|
||||||
|
|
||||||
|
## Заметки
|
||||||
|
___
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
и переходя к сегодняшней заметке я сразу получаю такую заготовку:
|
||||||
|
|
||||||
|
![](/img/posts/obsidian/templater.png)
|
||||||
|
|
||||||
|
### Остальные плагины
|
||||||
|
|
||||||
|
Остальные тоже крутые, но я их приведу просто списком:
|
||||||
|
|
||||||
|
- [obsidian-tasks-plugin](https://publish.obsidian.md/tasks/Introduction) — помогает более богато управлять
|
||||||
|
задачами. В частности, у меня проставляет дату завершения задачи, и проставляет даты дедлайна и прочее.
|
||||||
|
- [obsidian-reminder-plugin](https://uphy.github.io/obsidian-reminder/) — трекает и напоминает про задачи
|
||||||
|
- [calendar](https://github.com/liamcain/obsidian-calendar-plugin) — просто миникалендарь в боковой панели
|
||||||
|
- [homepage](https://github.com/mirnovov/obsidian-homepage) — позволяет задать произвольную заметку "домашней"
|
||||||
|
- [obsidian-icon-folder](https://github.com/timolins/obsidian-icon-folder) — позволяет задавать директориям и заметкам
|
||||||
|
произвольные иконки. Пример есть как раз на скриншоте выше.
|
||||||
|
- [pomodoro-timer](https://github.com/eatgrass/obsidian-pomodoro-timer) — думаю, из названия и так понятно
|
||||||
|
|
||||||
|
### А что же мне не хватает?
|
||||||
|
|
||||||
|
Я упомянул выше что мне кое чего не хватает. А именно, постить заметку в мой блог по протоколу
|
||||||
|
[Micropub](https://indieweb.org/Micropub).
|
||||||
|
|
||||||
|
Только из-за Obsidian и того, что он использует Markdown я опять [вернулся на Hugo](/posts/2024-11-15-hugo/), который
|
||||||
|
так же рендерится из Markdown.
|
||||||
|
|
||||||
|
«Но Hugo это же генератор статичных сайтов, куда ты ему будешь отправлять заметку для публикации?» — можешь спросить
|
||||||
|
меня ты. А я отвечу что у меня вот такой план:
|
||||||
|
|
||||||
|
![план-кабан](/img/posts/obsidian/publish.png)
|
||||||
|
|
||||||
|
То что выделено красным — ещё не существует в природе.
|
||||||
|
|
||||||
|
micropub сервер для hugo я уже начал писать. Да, есть nanopub сервер, но у него есть два серьёзных недостатка, это PHP и
|
||||||
|
то что его сделал не я.
|
||||||
|
|
||||||
|
micropub плагин для obsidian я вижу сделать на основе существующего плагина rest-publish. Ну или как пойдёт.
|
||||||
|
|
||||||
|
В общем, меня ждёт ещё очень много весёлого дрочева с этим всем.
|
||||||
|
|
||||||
|
## Закругляюсь
|
||||||
|
|
||||||
|
Пожалуй, пока на этом всё. Поделился как радостью использования Obsidian, так и планами на пет-проекты, что ещё надо-то?
|
||||||
|
|
||||||
|
Если что, пишите комментарии. Лучше всего здесь, но можно и во всяких телеграмах-вкшках.
|
BIN
static/img/posts/obsidian/logo.png
Normal file
BIN
static/img/posts/obsidian/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
BIN
static/img/posts/obsidian/publish.png
Normal file
BIN
static/img/posts/obsidian/publish.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 77 KiB |
BIN
static/img/posts/obsidian/templater.png
Normal file
BIN
static/img/posts/obsidian/templater.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 61 KiB |
|
@ -23,10 +23,10 @@
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
.sidebar .toc {
|
.sidebar .toc {
|
||||||
position: fixed;
|
|
||||||
min-width: 300px;
|
min-width: 300px;
|
||||||
}
|
}
|
||||||
.h-entry {
|
.h-entry {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
max-width: 1130px;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://git.neonxp.ru/neonxp/blog">Исходный код</a>.</li>
|
<li><a href="https://git.neonxp.ru/neonxp/blog">Исходный код</a>.</li>
|
||||||
<li><a href="mailto:i@neonxp.ru">Электропочта</a>.</li>
|
<li><a href="mailto:i@neonxp.ru" rel="me">Электропочта</a>.</li>
|
||||||
<li><a href="https://neonxp.ru/posts/index.xml">РСС</a>.</li>
|
<li><a href="https://neonxp.ru/posts/index.xml">РСС</a>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width">
|
<meta name="viewport" content="width=device-width">
|
||||||
<link rel="icon" type="image/png" href="/favicon.png">
|
<link rel="icon" type="image/png" href="/favicon.png">
|
||||||
|
<link rel="authorization_endpoint" href="https://indieauth.com/auth">
|
||||||
|
<link rel="token_endpoint" href="https://tokens.indieauth.com/token">
|
||||||
|
<link rel="micropub" href="https://eo7kjtzrfq0v1s2.m.pipedream.net/micropub">
|
||||||
<title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }}</title>
|
<title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }}</title>
|
||||||
{{ partialCached "head/css.html" . }}
|
{{ partialCached "head/css.html" . }}
|
||||||
{{ partialCached "head/js.html" . }}
|
{{ partialCached "head/js.html" . }}
|
||||||
|
|
Loading…
Reference in a new issue