static sites generation

17
Генерация статических сайтов Алексей Южаков, Parallels

Upload: alexei-yuzhakov

Post on 04-Jul-2015

1.265 views

Category:

Software


0 download

DESCRIPTION

Overview of static sites generation: purpose, reasons, tools.

TRANSCRIPT

Page 1: Static Sites Generation

Генерация статических сайтовАлексей Южаков, Parallels

Page 2: Static Sites Generation

Суть проблемы

Нужен сайт

Wix, Jimdo… Sitebuilder

Drupal, WordPress… Bitrix

Django, Rails, Symfony… Yii

Page 3: Static Sites Generation

Генераторы сайтов

Jekyll

Middleman

Octopress

Pelican

DocPac

… 50+

Page 4: Static Sites Generation

Область применения

Сайт-визитка

Сайт-“не визитка”

Промо-сайт

Портфолио

… Блог

Page 5: Static Sites Generation

http://jekyllrb.com/

Jekyll

Page 6: Static Sites Generation

Краткий обзор

Просто, гибко и удобно

Нужно знать HTML

Не только для статических сайтов

GitHub Pages работают на Jekyll

Page 7: Static Sites Generation

Быстрый старт

~ $ gem install jekyll ~ $ jekyll new my-awesome-site ~ $ cd my-awesome-site ~/my-awesome-site $ jekyll serve # => Смотрим http://localhost:4000

Page 8: Static Sites Generation

Быстрый старт

Page 9: Static Sites Generation

Детали

Директории с “_” - служебные

Тюнинг поведения - _config.yml

Есть шаблонизатор - Liquid

Расширение поведения - plugins

.  ├──  _config.yml  ├──  _drafts  |      ├──  crazy-­‐ideas.textile  |      └──  technology.markdown  ├──  _includes  |      ├──  footer.html  |      └──  header.html  ├──  _layouts  |      ├──  default.html  |      └──  post.html  ├──  _posts  |      ├──  2007-­‐10-­‐29-­‐nethack.textile  |      └──  2009-­‐04-­‐26-­‐barcamp.textile  ├──  _data  |      └──  members.yml  ├──  _site  └──  index.html

Page 10: Static Sites Generation

Пример сайта

Берем Twitter Bootstap и рисуем первую страницу

Сохраняем страницу в index.html

Смотрим ее в браузере – Jekyll уже работает

Разделяем страницу на шаблон и содержимое

Шаблон помещаем в _layouts/default.html

Ставим тег {{content}}

Page 11: Static Sites Generation

Пример сайта

В странице пишем:

-­‐-­‐-­‐  layout:  default  title:  Home  -­‐-­‐-­‐  !<div>…  

Page 12: Static Sites Generation

Пример сайта

Пишем вторую страницу с меню “по-простому”

Помещаем HTML-код в _includes/menu.html

Подключаем меню на нужных страницах

…  {%  include  menu.html  %}  …

Page 13: Static Sites Generation

Пример сайта

Создаем третью страницу (делаем меню «по-сложному») Описываем в _config.yml (или в _data/menu.yml)

menu:      -­‐  title:  "Home"          url:  "/"      -­‐  title:  "Modules"          url:  "/modules.html"

module  Jekyll      class  SiteMenu  <  Liquid::Tag          def  render(context)              site  =  context.registers[:site]  …

!Пишем маленький plugin (где-то подсмотрел)

Page 14: Static Sites Generation

Публикация

Только генерация: jekyll build

Готовый сайт - в директории _site

Копируем _site на целевой сервер: rsync, scp, FTP

Page 15: Static Sites Generation

Выводы

Удобно для статического сайта

Легко поддерживать

Безопасно - нечего хакать!

Не для домохозяек

Бери и пользуйся

Page 16: Static Sites Generation

Полезные ссылки

http://jekyllrb.com/

http://middlemanapp.com/

http://octopress.org/

http://getpelican.com/

http://docpad.org/

http://staticgen.com/