Генераторы статических сайтов
SSG — Static Site Generator — это инструменты для генерации HTML-страниц из текста. Таких генераторов великое множество и бывает сложно выбрать подходящий, поэтому вот основные:
SSG | Преимущества | Недостатки | Использование для технических писателей |
---|---|---|---|
Jekyll | Легко настроить, большое сообщество, интеграция с GitHub Pages | Скорость генерации больших сайтов может быть медленной | Прекрасно подходит для создания блогов, личных сайтов и документации |
Hugo | Очень быстрый, поддерживает множество форматов контента, можно кастомизировать стили | Может быть сложен для новичков | Отлично подходит для создания больших и сложных сайтов, в том числе с динамическим контентом |
Gatsby | Поддерживает React и GraphQL, большое сообщество, множество плагинов | Требует знаний в области JavaScript и React | Идеально подходит для создания сложных веб-приложений с динамическим контентом |
Как это работает
В целом можно так описать систему SSG: есть файлы-шаблоны, написанные на каком-то языке программирования. Часть этого кода — элементы будущей страницы. А часть — пустые места, куда потом вставится текст.
Писатель добавляет Markdown-файлы, генератор смотрит тип страницы и правильный к ней шаблон и заполняет пустые места текстом, формируя HTML-страницу.
Если вы захотите менять что-то в шаблоне — надо знать тот язык, на котором он написан. Но есть много готовых примеров в библиотеке каждого SSG, поэтому для личных и небольших проектов можно и не лезть в код, а только писать статьи в Markdown. Для коммерческой документации проверяйте лицензии и дорабатывайте шаблон под требования вашей компании — стили, целевую аудиторию, особенности контента etc.
Почему так лучше
- Писателю не надо думать о стилях и форматировании вообще — они определяются отдельно от текста. Поэтому если однажды надо будет поменять дизайн заголовков или размер отступов — они поменяются один раз в стилях, а не в каждом файле.
- Можно переиспользовать текст в других генераторах или системах. Например, настроить через API отображение каких-то частей статьи прямо в интерфейсе.
- Больше гибкости и масштабируемости: когда текст отдельно от стилей и хранится в универсальном формате, его легко передать в системы локализации, переиспользовать целиком или частями, настроить переменные значения для разных пользовательских условий.