summaryrefslogtreecommitdiff
path: root/content/posts/2025-05-19-nxpcms.md
diff options
context:
space:
mode:
author2026-02-02 00:35:54 +0300
committer2026-02-02 00:35:54 +0300
commitbfdd73d7324a4f66a16f55d4fb064b0ff08d40e9 (patch)
tree27fff9c802dcdd22960bb2e776e58278000d0364 /content/posts/2025-05-19-nxpcms.md
parentПоправил шаблон (diff)
downloadblog-bfdd73d7324a4f66a16f55d4fb064b0ff08d40e9.tar.gz
blog-bfdd73d7324a4f66a16f55d4fb064b0ff08d40e9.tar.bz2
blog-bfdd73d7324a4f66a16f55d4fb064b0ff08d40e9.tar.xz
blog-bfdd73d7324a4f66a16f55d4fb064b0ff08d40e9.zip
Большая чистка блога
Diffstat (limited to 'content/posts/2025-05-19-nxpcms.md')
-rw-r--r--content/posts/2025-05-19-nxpcms.md77
1 files changed, 0 insertions, 77 deletions
diff --git a/content/posts/2025-05-19-nxpcms.md b/content/posts/2025-05-19-nxpcms.md
deleted file mode 100644
index d1d30e6..0000000
--- a/content/posts/2025-05-19-nxpcms.md
+++ /dev/null
@@ -1,77 +0,0 @@
----
-date: '2025-05-19T00:00:00+03:00'
-title: NXPCMS — моя CMS'ка (ч.1)
----
-
-Долгое время я пользовался Hugo (а одно время, даже WordPress!). И в целом, всем
-он меня устраивал. Но недавно, произошло, казалось бы не связанное. Я снова
-воспылал интересом к треккерной музыке. При этом я немного полазал по сети,
-поспрашивал знакомых и собрал достаточно большую (>80Гб!) коллекцию. Но просто
-хранить на диске было скучно и я решил её выложить во внешку. Так появился
-shelter.neonxp.ru (сейчас не работает, почему - объясню ниже).
-
-Сначала список файлов сервил в веб просто Caddy, но у него был недостаток: он не
-мог дать послушать треккерный файл без скачивания. Тогда я накидал простенькую
-программку, которая так же просто отдаёт содержимое директории, но позволяла
-слушать треккерную музыку. Через некоторое время я подумал, а почему бы не
-прикрутить к ней и предпросмотр и других файлов? Сказано-сделано. Прикрутил
-сначала просмотрщик markdown и txt файлов. Дальше, мысль полетела уже по
-накатанной, и подумалось мне, что это же простенькая CMS. В эту сторону проектик
-я и стал развивать. И вот вчера я таки перевёл этот сайт на мою собственную CMS!
-
-Но пишу только сейчас, потому что вчера после переезда уже ничего не хотел
-писать, ибо переезд был непрост. И как я уже выше говорил, пока отключил shelter
-в пользу этого сайта. Позже заведу и shelter. Особенности моей CMS:
-* минимум конфигурации: один бинарник, который при запуске сервит сайт из
- текущей рабочей директории.
-* структура сайта ~= файловая структура, отсюда и листинг файлов на каждой
- странице
-* нет какого-то общего файла конфигурации (аля /etc/...), вместо этого для
- каждой директории можно создать свой файл .config.json (формат hjson, на самом
- деле), который распространяет своё действие на текущую директорию, и на все
- вложенные. Вложенные директории могут иметь свои конфиги, которые могут или
- частично или полностью переопределять родительский конфиг. Например:
-```
-/var/www/neonxp.ru/.config.json
-
-{
- "title": "NeonXP.log",
- "description": "Личный сайт Go-разработчика из Казани",
- "index": [ "index.gmi", "index.md", "index.txt"],
- "url": "https://neonxp.ru/",
-}
-```
-а для директории постов важно, чтобы сортировка была в обратном порядке, поэтому
-её конфиг выглядит следующим образом:
-```
-/var/www/neonxp.ru/posts/.config.json
-
-{
- "description": "Блог", # <- перезапись родительского конфига
- "desc": true,
-}
-```
-Немного напоминает дедушку Apache2 с его .htaccess :) Но мне это кажется весьма
-удачной идеей.
-* Основной формат разметки — gemtext. Просто потому что мне он нравится своим
- радикальным минимализмом. Минималистично настолько, что его парсер в html для
- этой CMS я написал примерно за час с нуля.
-
-На самом деле, написать свою CMSку — достаточно старая мечта, и в своём прошлом,
-я неоднократно это делал, ещё на PHP (ну тогда это было модно). Ну и кто мне
-запретит сделать это сейчас, с теми идеями что я указал выше?) По факту
-получилось что-то среднее между веб-сервером аля Apache2 и классическими CMS, и
-мне это нравится.
-
-## Что дальше?
-
-А дальше я буду развивать её в сторону тех фич, что нужны лично мне:
-* Доделать миграцию постов и материалов из старого блога. Сейчас всё
- импортировано в автоматическом режиме и выглядит откровенно плохо
-* Поддержка предпросмотра большего числа форматов файлов
-* Хотелось бы сделать Basic авторизацию + загрузку файлов по http
-* Раз уж используется gemtext — сделать и поддержку gemini протокола
-* Прикрутить cgi или скрипты на lua? А почему-бы и нет? :) Хотя бы сделаю
- какую-нибудь олдскульную гостевуху
-* Прикрутить все эти клёвые indieweb штуки, которые было весьма проблемно
- прикрутить к Hugo блогу в силу его статичности