За последний месяц я попробовал несколько генераторов статических сайтов в поисках удобного, гибкого и, самое главное, современного варианта, о чем хочу кратко поделиться. В первую очередь я начал изучать те инструменты, которые уже косвенно использовал или просто встречал — Jekyll, MkDocs, Sphinx, GitBook. Хочется сразу начать с генераторов статических сайтов старой школы — Jekyll, Hugo, MkDocs. Поскольку они появились достаточно давно, по ним существует обширная база информации, множество плагинов и возможностей кастомизации. Однако из коробки они предоставляют довольно устаревший и аскетичный внешний вид, а настройка не всегда тривиальна, хотя для базового запуска разобраться несложно. На их фоне выделяется MkDocs, поскольку для него есть глобальное расширение Material for MkDocs. Тем не менее, его внешний вид и удобство настройки тоже не хватают звёзд с небес.
Что касается Sphinx, то для автоматизированной генерации документации из докстрингов я не нашёл ничего лучше. Однако это довольно специфичное решение, и вряд ли кто-то использует его вручную, хотя он и поддерживает работу с ReST и Markdown.
В дальнейшем я уже перешёл к генератором новой школы, если их так можно назвать, — Docusaurus, VitePress/VuePress, Gridsome, Eleventy, Qwik и Starlight.
Своё знакомство я начал с Docusaurus и очень быстро пожалел: настолько неинтуитивного, неудобного и сложного генератора я ещё не встречал.
От GitBook я отказался сразу после знакомства — сервис не даёт возможности селфхоста как таковой, однако в целом выглядит приятно.
Разочаровавшись в первых двух, я продолжил свой поиск дальше и наткнулся на, как оказалось, уже знакомый мне Starlight от создателей фреймворка Astro.
Проект меня сразу привлёк внешним видом — он не перегруженный, простой и выглядит довольно современно, но без напыщенности. Настройка тоже довольно простая (за исключением лишь команд npm, но это отдельная история). Имеется также и поддержка плагинов и различных интеграций от сообщества. Сам генератор поддерживает Markdown, Markdoc и MDX, что позволяет использовать компоненты в разметке и создавать собственные. Внешний вид и структура страниц настраиваются гибко, доступны сторонние темы. Без минусов, конечно, не обошлось: например, встроенный набор иконок оставляет желать лучшего, однако это можно исправить с помощью кастомизации.
Очень близки к Starlight по идеологии и внешнему виду VitePress и Qwik, однако, например, первый не поддерживает плагины. VuePress, Eleventy и Gridsome на первый взгляд кажутся менее простыми и чуть более устаревшими проектами, однако вполне заслуживают внимания.
Особняком среди этих проектов стоит Quartz — это тоже генератор статики, однако он больше ориентирован на создание и ведение цифрового сада — что-то среднее между блогом и личной вики, не такое упорядоченное и отполированное, а растущее и меняющееся со временем, из чего и названо именно садом. Проект является бесплатной и опенсорсной альтернативой платному Obsidian Publish (сервис от самих создателей редактора), поскольку многие люди активно пользуются бесплатным и удобным Obsidian. Кастомизации в Quartz тоже хватает, однако для полного преображения сайта придётся поработать самостоятельно, хотя даже из коробки внешний вид уже самодостаточен. Главная фишка инструмента — именно генерация страниц из обычных Markdown-файлов.
Для себя я в этом инструменте нашёл замену двум уже используемым сервисам — Telegraph и Teletype, поскольку мне хотелось бы полностью контролировать весь свой контент локально и при необходимости быстро и удобно его редактировать.
В итоге пока я остановился именно на этих двух проектах. Мой собственный цифровой сад вы уже можете оценить прямо тут. В дальнейшем я планирую сделать полноценный шаблон для Instant View, а предварительный вариант уже можно посмотреть в посте с Anker A40: я бережно перенёс контент из Teletype в свой сад.