Искал вчера инструменты для генерации RSS-лент – в частности, хотелось найти что-то под задачу “уведомлять через RSS о появлении нового прайс-листа в каталоге”. Того, что хотел, так и не нашел, зато попались на глаза несколько других интересных проектов.
Во-первых, mod_atom для Prosody – нечто для работы с микроблогами в Jabber/XMPP. В протоколе есть специальное расширение для этого – XEP-0277. В основную ветку вроде пока не принят, но, судя по changelog’у – вполне развивается. У ejabberd есть модуль mod_rabbitmq – правда, довольно старый, последнее обновление в 2009, так что рисковать запустить его у себя я, пожалуй, не буду. Но интересно глянуть, как это вообще все работает – возможно, разверну потом на тестовой машине Prosody с mod_atom.
А во-вторых, попался на глаза chronicle – проект на Perl’e для генерации статического блога. Просто создаешь заметки в текстовых файлах в определенном каталоге, запускаешь скрипт – и он тебе выдает на выходе пачку HTML’ок с календарем архива, с тегами, RSS, поддержкой комментариев и всяким таким. Писать можно plaintext’ом, можно в HTML или markdown (надо, кстати, приучиться активнее использовать для оформления текста MD – смотрю, много где используется). chronicle есть в репозитории Debian’а – причем, не самой последней версии (для любого из репозиториев), но в любом случае автор уже начал развивать альтернативный проект на Go – Ephemeris. Собственно, весь этот проект начинался как проект блога автора, поэтому посмотреть его “вживую” можно тут – https://blog.steve.fi.
Честно говоря, очень понравилась простота и лаконичность всей этой системы. Никаких тебе PHP, мегабайтов памяти под него и базу данных, а также монстрообразных движков WordPress’а. Сайт выходит супер-легкий и опрятный – собственно, с WP я тоже не использую какие-то напрягающие темы, но тут это все достигается гораздо меньшими ресурсами. Не знаю; возможно, если бы я сейчас заводил блог с нуля, то сделал бы его на базе чего-то такого – просто надо изначально выработать в себе немного другой подход к ведению блога. Тот же MD можно набирать в retext при желании (черт, почему мне вечно попадаются проекты, где не любят кнопки на панели инструментов?). Для кода можно было бы активнее использовать Mediawiki – конечно, там, где это реально надо, а так-то хватало бы и MD-разметки. Есть только 2 “непривычных” пункта: отсутствие поиска прямо в блоге – и это решается сторонним поисковым движком, он у меня все равно используется для чатлогов конференций, а также непривычная работа с картинками (ну и другими файлами) – да, тут пришлось бы просто выделить каталог на веб-сервере, куда бы все выгружалось, а дальше в MD просто размещаешь ссылку на то, что хочешь.
Update: пока писал это – заинтересовался темой статического блога, погуглил насчет WordPress’a. Есть плагин Simple Static, позволяет генерировать статичные странички для записей в блоге. Поставил, попробовал, результаты:
- Есть возможность использовать WP чисто как систему управления контентом, а на “живом сайте” держать чисто статику. Сайт может быть на другом домене – т.е., в целом, ничего не мешает хостить параллельно WP и статическую версию.
- Есть базовые настройки для сохраняемого контента – можно сохранять для отдельного домена, подкаталога на основном домене или вообще сохранить для локального использования.
- Есть генерация контента по cron’у.
- Контент каждый раз генерируется с нуля – даже для тех страниц, для которых уже раньше это делалось.
- Генерация весьма долгая. Например, для этого блога это заняло 16 минут.
- В дамп попадает практически все – в том числе картинки в различных разрешениях. Общий размер дампа вышел 474 МБ.
- Поиск, понятное дело, не работает.
- Где-то косяк из-за названий статей на кириллице – в ФС каталоги сохраняются с escape-символами, но браузер (?) в итоге пытается преобразовать все в читаемый вид, в итоге не находит каталог вообще. Настроек по отключению esc-символов в плагине нет.
- HTML довольно “грязный”. Нет, конечно, максимально сохраняется оригинальный вид блога, но все же эта страничка (до этого обновления) содержит текста от силы на несколько килобайт, а в статической версии весит 55.
https://gohugo.io/ – The world’s fastest framework for building websites