13 мая 2010 в 18:01

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

Эта замета о нескольких генераторах статических веб-страниц. Список различных движков — в самом конце.

Jekyll появился, когда Tom Preston-Werner, сооснователь GitHub, устав от блогерских платформ вроде Wordpress или Blogger, задался вопросом: "А что случится, если я буду писать в блог так, как я разрабатываю програмные продукты?" Посты в нем создаются в файлах в формате Textile и проспускаются через движок шаблонов Liquid. И тот, и другой весьма популярны среди рубистов.

Очень кстати Jekyll оказался для сайта донецкого кофе-и-кода. Все желающие могут писать новости, как файлы в репозитории. Делать commit на GitHub. Репозиторий с файлами проверяется cron'ом каждые полчаса. И, если есть обновления, обновляется сайт. Таким образом получается своеобразное кеширование на 30 минут. Хостинг любезно предоставлен Пашей Резниковым. О деталях работы с постами можно почитать в памятке на сайте, но по сути там все просто: редактируется файл и делается git push.

Для своих целей мне захотелось чего-то написанного на Python. Хотелось, чтобы страницы писались в reStructuredText, записи сортировались по последней редактированной, и еще ряд мелких прихотей. Обсуждение на StackOverflow может послужить хорошей отправной точкой для тех, перед кем встанут подобные задачи.

Аналог Jekyll на Python — Hyde, который растет из AYM CMS, показался своего рода "жилетом Вассермана" — слишком много всего, хотя предок весьма легковесен.

Привлек внимание Poole. Там используется Markdown, а в шаблонах автор сделал возможным встраивать куски кода на Python. Для конкретно таких целей, такое смешивание кода и дизайна показалось уместным. Понравилось то, что изначально весь движок — один файл, который потом создает и изначальные шаблоны.

В конце концов, начал писать StaPy — свой велосипед по мотивам Poole. Там также все файлы с текстом для страниц подгружаются в dict-подобные объекты, а затем по ним генерятся страницы и заглавная. Все же решил не мешать код и дизайн, зато отказался от парадигмы устанавливания — скрипт хранится вместе со всеми файлами в директории и подпиливатся для различных применений. В качестве шаблонов используются шаблоны Django. Код по ссылке выложен лишь для илюстрации — пока не присваиваю ему даже минорную версию.

После всех наблюдений над различными движками мне сейчас кажется весьма логичным, если встанут задачи генерации статических веб-сайтов, выбирать свой любимый язык (Python, Ruby, PHP...), наиболее знакомый движок шаблонов (Django, Liquid, Smarty...), наиболее знакомый язык разметки (reStructureText, Textile, Markdown...) и набросать свой генератор по мотивам имеющихся. Для командных целей усреднять предпочтения, и еще учитывать, что больше всего распространено и лучше всего документировано.

Список движков


Python


AYM CMS
довольно легковесный движок с Django templates
Hyde (старый)
аналог Jekyll, Django templates, очень много чего намешано
Hyde (новый)
без Django, активной разработке
Poole
Markdown + шаблоны поддерживающие вставку кода
StaPy
reStructureText + Django templates
Cyrax
На шаблонах Jinja2
Pelican
Jinja2, reST, Markdown — описание на русском
Blogofile
Mako шаблоны, разные языки разметки

pyblosxom.bluesock.org/ — очень древний по мерках интернета, since 2004
nikola.ralsina.com.ar/ — развитый
posativ.org/acrylamid/ — простой


Ruby


Jekyll
очень популярный движок среди тех, кто использует GitHub
Gollum-site
Генерирует статический сайт из вики в формате Gollum, которые используются GitHub (git+Markdown, Textile, reST...).
Octopress
Надстройка над Jekyll с рядом плагинов и responsive шаблоном.

PHP


Staceyapp

Node.js


github.com/sapegin/sweet

Разное



bitbucket.org/jek/blatter/
github.com/dz/chisel
markdoc.org/
nanoc.stoneship.org/
inky.github.com/pilcrow/
sphinx.pocoo.org/
ivy.fr/tahchee/

Дополняйте список в коментариях.
texamus @texamus
карма
62,2
рейтинг 0,0
Похожие публикации
Самое читаемое Разработка

Комментарии (16)

  • +1
    python — cyrax
  • +1
    дизайны этих сайтов меня оттолкнули даже от просмотра инфы о них…
  • 0
    Спасибо, очень полезная инфа.
  • 0
    Я тоже баловался генерацией html, в результате родилась софтинка: ru.websitepad.com, сам ее использую для поддержки небольших сайтов. Тоже есть шаблонизатор, упрощенный язык разметки, скрипты для генерации можно писать на Javascript. Но как-то не очень она пошла в народ и интерес я постепенно утратил…
    • 0
      платная ;-(
      • 0
        Да, но у меня есть и другой генератор — бесплатный, он даже в чем-то удобнее: bytexpert.ru/webproject/
  • 0
    • 0
      спасибо обновил списки
  • +1
    возжможным язык сломал читая ))) слово записал, понравилось.
  • 0
    На python еще есть неплохой Pelican, документация здесь: docs.notmyidea.org/alexis/pelican/

    Вот здесь я описываю генерацию сайта с его использованием и хостингом на github: klen.github.com/github-blog-ru.html
    • 0
      Спасибо за подробную инструкцию! Я сам питонист и к этому движку присматривался. Сейчас добавлю ссылку в тело заметки.

      Все же не стоит и недооценивать сообщества рубистов. Я в последнее время собираю разные вики в одной используя Gollum — это wiki, на которой бегает вики в GitHub. Экспортирую в статический сайт при помощи gollum-site. Вот выложил инструкцию в статическом зеркале вики у себя на сайте:

      dudarev.com/wiki/Wiki-Usage.html

      Хотелось бы еще и аналога на Python, чтобы было git+browser+много синтаксисов. MoinMoin2 идет в похожем направлении, но без привязки к DVCS.
      • 0
        Я не против руби. Просто мне лень множить технологии на рабочем компе, ставить руби и необходимые Jekyll модули. Поэтому описываю решение на Python.
  • 0
    1) на основе упомянутых появились их более новые реализации под другими названиями
    2) также есть программы для создания и поддержки статических сайтов (http://bytexpert.ru/webproject/, www.alaborn.ru/products/istyle/ и т.п.)
  • НЛО прилетело и опубликовало эту надпись здесь

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.