hikan.ru/posts/post-upload-system.md

2.9 KiB
Raw Blame History

Система загрузки постов

Началось всё с того, что я задумался о том, как же всё таки лучше хранить посты на этом сайте.

Раньше в своих блогах я хранил посты записями в sql базе данных. Ячейка с непосредственно данными поста содержала в себе его html разметку. Я также делал админ-панель на сайте чтобы эту разметку можно было редактировать прямо там.

Но писать что-то в html довольно неудобно, медленно и тд. Писать в markdown намного удобнее. Сразу же нашел инструмент github.com/gomarkdown/markdown, позволяющий легко (пример) конвертировать md байты в html байты. А это все что мне нужно.

Горячая перезагрузка

Подумал, что неплохо было бы написать hot-reloader, чтобы посты менялись на сайте если я как-то их меняю в папке на сервере.

Идея выглядит следующим образом: есть команда для сборки бинарника (может быть абсолютно любой, хоть cargo, хоть make, хоть gcc и тд., главное чтобы соответствующая система сборки была установлена на устройстве), путь до собранного бинарника, и список директорий, за которыми надо следить.

Далее, запускается скрипт, собирает указанной командой бинарник и начинает следить за директориями. При каких-либо изменениях в директориях, бинарник пересобирается и перезапускается.

На чем писать? Я хочу чтобы никаких зависимостей у скрипта не было вообще. Чтобы можно было его скачать, настроить за пару секунд и все. Решил писать на bash. Который я кстати вообще не знаю. Посидел пару часов, спрашивая непонятные моменты у deepseek. Скрипт в итоге получился ровно таким, какой был мне нужен, и уже контролирует работу серверной программы этого сайта.