easimonenko Evgeny Simonenko

Генераторы статических сайтов

05 Aug 2013 |  Tutorial  |  Static Site Generators   Web Development  

В этой заметке даётся краткий обзор статических генераторов, с которыми автор познакомился за последние несколько дней, окончательно решив перейти с доморощенной системы генерации на промышленную (см. об этом мой пост Два точка ноль).

Я потратил несколько дней на ознакомление с различными системами управления статическими сайтами. Здесь же хочу выделить особо:

Несколько слов о каждой.

Jekyll

Система написана на Ruby и основана на некоторых идеях Ruby On Rails. Основным форматом публикаций здесь является Markdown, но есть и поддержка некоторых других, в том числе и HTML-шаблонизатора. Очевидно, что для работы Jekyll потребуется установить Ruby (в Windows можно воспользоваться Ruby Installer), а затем установить соответствующий Gem-пакет.

Плюсом Jekyll является его поддержка GitHub Pages. Правда поддержка эта урезанная, точнее: запрещено использовать нестандартные дополнения, а это значит, что расширять и изменять систему генерации не выйдет.

Sphinx

Система написана на Python и изначально предназначена для системы документации. Очень удобна кроме документации также для любых других текстовых публикаций. Плюсов два:

Основной минус - жёстко заданная структура сайта, ориентированная на документацию.

GitHub Pages

Вообще говоря, GitHub Pages позволяет использовать три подхода:

Немного о третьем подходе. Здесь всё очень просто. Создаёте на GitHub репозиторий с именем LOGIN.github.io, где LOGIN это Ваш логин на GitHub, и в настройках репозитория в разделе GitHub Pages щёлкаете кнопку Automatic Page Generator. После чего выбираете тему оформления, и сайт готов.

Огромный плюс системы заключается в том, что сайт является Git-репозиторием.

Hakyll

Для своего сайта после экспериментов с разными системами я выбрал Hakyll. Эта система написана на Haskell. Гибкость достигается как поддержкой различных форматов документов, а также шаблонизатора, так и возможностью вносить изменения в генератор сайта.

Для изменения процесса генерации сайта, а также для добавления новых возможностей по генерации, нужно вносить изменения в файл, который в дереве проекта сайта называется site.hs. Структура его достаточно ясна, при необходимости можно обратиться к документации Hakyll ( http://www.jaspervdj.be/hakyll/reference/index.html).

К сожалению, я не нашёл ни одного бесплатного хостинга с поддержкой не то, чтобы Haskell, а хотя бы Hakyll. Но в принципе можно обойтись и локальной генерацией с последующим выкладыванием на любой статический хостинг. Очень удобно, однако, использовать хостинги типа GitHub Pages. Я же решил размещаться на Bitbucket, но об этом другой раз.

(c) Симоненко Евгений, 2013