diff options
| author | 2026-02-02 00:35:54 +0300 | |
|---|---|---|
| committer | 2026-02-02 00:35:54 +0300 | |
| commit | bfdd73d7324a4f66a16f55d4fb064b0ff08d40e9 (patch) | |
| tree | 27fff9c802dcdd22960bb2e776e58278000d0364 /content/posts/2025-05-19-nxpcms.md | |
| parent | Поправил шаблон (diff) | |
| download | blog-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.md | 77 |
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 блогу в силу его статичности |
