StaticMatic: Статические сайты на Ruby
После программирования на Ruby on Rails быстро привыкаешь к этой платформе, и многим ее вкусностям. В частности, к часто используемым языкам разметки Haml и Sass.
Но иногда наступают моменты, когда надо сделать статический сайт из нескольких страничек, за которым нету никакой базы данных, да и серверной логики вообще.
Не хочется возвращаться к старым html и css. Но при этом и делать это на ROR неразумно.
Для таких случаев был создан фреймворк staticmatic, позволяющий на основе Haml+Sass+вкусностей на Ruby сгенерировать набор статичных веб-страниц, которые можно разместить на любом хостинге, без поддержки Ruby вообще.
Итак, как использовать staticmatic:
Установка
Для начала, его надо установить, например из гемов:
sudo gem install staticmatic
Создание сайта
Для того, чтобы создать новый сайт, необходимо вызвать в какой-то директории:
staticmatic setup my_site
В результате вызова будет создана следующая структура:
my_site/
site/
images/
stylesheets/
javascripts/
src/
pages/
index.haml
layouts/
application.haml
stylesheets/
application.sass
helpers/
partials/
В директории site размещаются сгенерированные статические страницы, а также изображения, скрипты и прочие негенерируемые данные.
В src находится исходный код сайта:
- pages - страницы сайта, описанные с помощью языка разметки Haml.
- layouts - лайоуты сайта, позволяющие оборачивать страницы. Для тех, кто не знаком с ROR: в лайоуте описывается код общий для нескольких страниц, например, заголовк сайта, навигационная панель и футер.
- stylesheets - таблицы стилей, описанные с использованием
Sass . - helpers - вспомогательные модули, описываемые на Ruby.
- partials - участки, переиспользуемые на различных страницах.
- img - тэг изображения, параметр - расположение изображения
- link - формирование ссылки, первый параметр - текст ссылки, второй - адрес
- current_page - адрес текущей страницы
- partial - вставить участок страницы, имя которого задано в параметре
staticmatic preview my_site
В результате на 3000 порту будет поднят сервер, который позволит просмотреть результат работы.
Когда работа закончена, его необходимо собрать. Для сборки сайта в директории site, необходимо вызвать (из директории на уровень выше проекта):
staticmatic build my_site
В результате, в директории site будет сгенерирован набор статических страниц сайта.
