Markdeep
Всего две строчки - в начале строка и в конце. Закинул на хостинг - сайт готов. Стили - по-вкусу.
Достаточно почти для всего - для публикации заметок, статей, документации.
https://casual-effects.com/markdeep/
Как это работало раньше?
Классический веб-сайт (Lamp + wordpress)
+--------------------------------------------------------------------------------+
| +---------------------------------+ -------------------------------+ |
| | CMS| v |
| | Ассеты | +--------------------+ |
| | +----------+ | | | |
| | |Text | | | | |
| | |.... | | | Сайт | |
| | |... | | | | |
| | |. | | | | |
| | +----------+ | +--------------------+ |
| | +-----+ +-------+ | | |
| | | ... | | | | Админка | |
| | +-----+ | .jpg | | <------------------------------+ |
| | | | | |
| | +-------+ | |
| +---------------------------------+ Lamp|
+--------------------------------------------------------------------------------+
^
|
+-------------------------------------------------------------------------------+
| Сервер |
+-------------------------------------------------------------------------------+
Заходишь на сайт, попадаешь в админку. И там загружаешь файлы, редактируешь тексты и шаблоны.
Самый большой недостаток - сервер требует обслуживания.
Настройка сервера - отдельный вид искусства.
- Всякие права на директории.
- Это мы запускаем под тем пользователем, для этого создадим нового Следить за обновлениями
- как “движка”
- так и системы (если сервер свой) Бэкапы/восстановление
Для сайта, на котором хочется опубликовать просто тексты и картинки - это кажется избыточным.
Генератор статических сайтов (Static Site Generator, SSG)
+---------------------------------------------------------------------------------+
| Локальная разработка |
| +-----------------------------------------------------+ |
| | +---------+ +--------------------+ | |
| | | | | | | |
| +------------------+ | | .html | +-----+ | | | |
| |SSG | | | | |.css | | Сайт | | |
+------------------------+ | |( hugo, | | +---------+ +-----+ | | | |
|Ассеты | +--+->| 11ty, |-->| +----------+ | | | |
| | | | | jekyll) | | | | +--------+ +--------------------+ | |
| +----------+ | | | | | | | .webp | |feed.xml| | |
| |Text | | | | +------------------+ | | | +--------+ | |
| |.... | | | | | +----------+ localhost| |
| +----+ |... | | | | +-----------------------------------------------------+ |
| |... | |. | |----+ | | |
| +----+ +----------+ | | | +-------------------------------+ | |
| +-------+ +-------+ | | | | Текстовый редактор | | |
| | | | {{ }} | | | | | (vscode, vim) |<---------+ |
| | .jpg | +-------+ | | | | | |
| | | | | | +-------------------------------+ |
| +-------+ | | | | |
+------------------------+ | +-------------------------+-------------------------------------------------------+
^ | |
+----------------+----------------------------+
| +-----------------------------------------------------------------------------+
| | Сборка + Публикация (Build + Deploy) |
| | +-------------------------------+------------------------------------+
| | +-----------------------------------+ | | |
| | |SSG | | | |
| | |( hugo, | | +---------+ | +--------------------+ |
| | | 11ty, | | | | | | | |
| | | jekyll) | | | .html | +-----+ | | | |
+------>| | | | | | |.css | | | Сайт | |
| +-----------------------------------+ | +---------+ +-----+ | | | |
| | +----------+ | | | |
| | | | +--------+ | +--------------------+ |
| | | .webp | |feed.xml| | |
| | | | +--------+ | |
| | +----------+ | |
| | | |
+---------------------------------------------+-------------------------------+ Linux + Apache|
| Linux + Nginx|
+--------------------------------------------------------------------+
^
|
|
+-----------------------------------------+
| Сервер |
+-----------------------------------------+
Для статически сгенерированного веб-сайта достаточно самого простого веб-сервера. Не нужны базы данных, интерпретаторы скриптов (php).
Но если задуматься, то обслуживание никуда не делось. Его перенесли. И удвоили. Теперь вместо обслуживания сервера, обслуживать предстоит:
Локальное окружение
- Jekyll, 11ty - требуют интерпретаторов установленных руби и жс соответственно.
- Зависимости для сайта или тем. Конвейер сборки
Да, эти процессы куда ближе программистам - программисты не любят администрировать. Вообще, никто не любит администрировать сервера. И скорее всего, у фронтенда на компьютере уже установлен nvm, а у рубиста bundle. Да и настраивать конвейр не обязательно. Можно собирать локально и загружать на хостинг ручками. Но для меня это не выглядит упрощением. Лишь компромиссом.
There is no solutions, only tradeoffs.
Markdeep
А если отказаться от сборки и просто подсказать браузеру, как надо обрабатывать текст при помощи javascript? Не нужно ничего нигде настраивать. Не нужно ставить никаких зависимостей. Не нужен ни пайтон, ни руби, ни нода.
+-------------------------------------+
| Локальная разработка |
| +------------------------------+ |
| | | |
| | | |
| | +--------------------+ | |
| | | | | |
+------------------------+ | | | | | |
|Ассеты | +--+-->| | Сайт | | |
| | | | | | | | |
| +----------+ | | | | | | | |
| |Text | | | | | +--------------------+ | |
| |.... | | | | | localhost| |
| +----+ |... | | | | +------------------------------+ |
| |... | |. | |----+ | | |
| +----+ +----------+ | | | | |
| +-------+ +-------+ | | | v |
| | | | {{ }} | | | | +------------------------------+ |
| | .jpg | +-------+ | | | | Текстовый редактор | |
| | | | | | | (vscode, vim) | |
| +-------+ | | | | | |
+------------------------+ | | +------------------------------+ |
^ | | | |
| | +-------------------+-----------------+
+----------------+----------------------+
|
|
|
| +-------------------------+
| | |
| | |
| | +--------------------+ |
+------>| | | |
| | | |
| | Сайт | |
| | | |
| | | |
| +--------------------+ |
| |
| Linux + Apache|
| Linux + Nginx|
+-------------------------+
^
|
|
+-----------------------------------------+
| Сервер |
+-----------------------------------------+
Даже если у бедняги выключен javascript - страница всё-равно остаётся доступной. Это просто читабельный маркдаун текст!
Конечно, движок или SSG - даёт определенные удобства: Автоматически создают страницы для тегов. По-умному это называется таксономией. Можно генерировать страницы не из текста, а из произвольных данных - ответов API, json/yaml-файлов и т.д. куда больше возможностей по кастомизации вёрстки. Компонентны, виджеты…
Подумайте, надо ли оно вам. Или можно обойтись Markdeep.