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

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

    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/

    Дополняйте список в коментариях.
    Метки:
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 16
    • +1
      python — cyrax
      • +1
        дизайны этих сайтов меня оттолкнули даже от просмотра инфы о них…
      • 0
        Спасибо, очень полезная инфа.
        • 0
          Я тоже баловался генерацией html, в результате родилась софтинка: ru.websitepad.com, сам ее использую для поддержки небольших сайтов. Тоже есть шаблонизатор, упрощенный язык разметки, скрипты для генерации можно писать на Javascript. Но как-то не очень она пошла в народ и интерес я постепенно утратил…
        • 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/ и т.п.)
                • НЛО прилетело и опубликовало эту надпись здесь

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