Выбираем генератор статических сайтов

    облачное хранилище

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

    Первая публикация в этом цикле будет посвящено сравнительному анализу генераторов статических сайтов.

    Критерии сравнения


    Генератором статических сайтов называется программный инструмент, превращающий текстовые записи (с разметкой или без) в статичные HTML-страницы. Все инструменты такого рода работают примерно одинаково: берется контент, склеивается с шаблоном, после чего отправляется на хостинг. Количество существующих генераторов статических сайтов исчисляется сотнями, если не тысячами.

    Как из всего этого множества выбрать действительно стоящий продукт? Мы решили подготовить свой сравнительный обзор, который. как мы надеемся. поможет кому-то из вас определиться с выбором. Для сравнения мы отобрали генераторы, которые, во-первых, можно «подружить» с нашим облачным хранилищем. Во-вторых, мы учитывали еще и следующие критерии:
    • простоту установки и настройки;
    • наличие дополнительных расширений и плагинов;
    • уровень поддержки (как развивается продукт, как часто он обновляется; имеется ли подробная документация);
    • поддерживаемые способы деплоя.


    Обзор генераторов


    MiddleMan, Jekyll, Octopress


    Все три из перечисленных генераторов написаны на Ruby и во многом схожи по набору функций. Именно поэтому мы решили объединить их в одну группу.

    Процедура установки всех этих продуктов сопряжена с некоторыми трудностями: версии Ruby, включенной в официальные репозитории Linux-систем, скорее всего будет недостаточно — придется обновить ее до самой последней. Также потребуется установить менеджер пакетов RubyGems и менеджер версий Rbenv.

    MiddleMan мы активно используем в собственной практике: именно на нем работает промо-сайт облачного хранилища, а также сайт selectel.io. Несомненным его преимуществом является хорошая и подробная документация, написанная простым и понятным языком. Для Middleman написано немало расширений и плагинов, список которых постоянно обновляется.

    Поддерживается деплой с помощью FTP, SFTP, rsync, git (на официальном сайте выложены скрипты для автоматизации процедуры деплоя; еще одно расширение опубликовано на GitHub). Возможен также деплой на AWS и BitBalloon (имеются соответствующие плагины).

    Jekyll (см. также статью на Хабре ) известен в первую очередь тем, что используется в качесте дефолтного движка для статических сайтов на основе GitHub Pages. Очень часто он используется для ведения блогов. Несомненным преимуществом Jekyll является поддержка разметки Liquid: это дает возможность создавать шаблоны, используя конструкции исключительно языка разметки, а не языка программирования.

    Расширений и плагинов для Jekyll существует довольно много (см. информацию на официальном сайте, а также здесь и здесь). Официальные плагины «заточены» в основном на работу с GitHub Pages. Плагины, опубликованные на GitHub, в большинстве своем предназначены для расширения возможностей блоггинга (добавление облака тэгов, полнотекстовый поиск по блогу и даже специализированный плагин для научных и образовательных блогов).

    Поддерживается деплой по FTP, а также с помощью rsync и git.

    В отличие от двух предыдущих продуктов, Octopress является специализированным генератором: он по сути представляет собой надстройку над Jekyll c дополнительными плагинами и responsive-шаблоном, обеспечивающими более удобное ведение блогов.

    В качестве формата разметки постов по умолчанию используется Markdown, но можно использовать и обычный HTML. Несомненным плюсом Octopress является поддержка переезда с других площадок: например, все записи из блога на Wordpress можно перенести в новый статический блог при помощи специального скрипта (правда, велика вероятность того, что после переноса оформление некоторых текстов может «поломаться», и их потребуется править вручную). «Из коробки» поддерживается и работа с сервисом Disqus, что упрощает перенос комментариев. Блог на основе Octopress можно интегрировать с социальными сетями (Facebook, Twitter, Google Plus и другими).

    Существуют плагины, реализующие, например, вставку календарей (похожих на те, что иногда встречаются в блогах на Wordpress), списка похожих постов, облака тэгов и так далее.

    По умолчанию поддерживается деплой с помощью git (на GitHub Pages или Heroku) или rsync (на любой хостинг, где можно настроить SFTP или можно запустить rsync). Можно настроить и деплой по FTP (о том, как это сделать, можно прочитать, например, здесь).

    Hyde


    Этот генератор статических сайтов изначально замышлялся как полный аналог Jekyll, только написанный на Python — отсюда и название, отсылающее к знаменитой повести Р.Л. Стивенсона «Странная история доктора Джекилла и мистера Хайда».

    Следует различать старую и новую версию Hyde. Старая версия основана на Django templates; в настоящее время ее разработка приостановлена (последние коммиты в репозитории на GitHub датируются 2009 — 2010 годом). Новый Hyde (см. также репозиторий на GitHub) в настоящее время находится в активной разработке.

    По функциональности новый Hyde не отличается от MiddleMan и Jekyll. Мы немного потестировали его, и он произвел на нас вполне приятное впечатление. Из обнаруженных недостатков выделим только один: проект, как уже сказано выше, находится в стадии активной разработки. Именно поэтому документация к нему представлена пока что в очень сжатом и лаконичном виде, а плагинов и расширений существуют очень мало (вот их небольшой список на официальном сайте).
    Поддерживается деплой на GitHub Pages и Amazon S3.

    Будем надеяться, что в будущем этот инструмент получит дальнейшее развитие и станет более удобным в работе.

    Pelican


    Pelican также написан на Python. По сравнению со многими генераторами статических сайтов он обладает исключительно широким набором функций: работа с черновиками, интеграция с социальными сетями, добавление изображений, конвертация HTML-страниц в PDF, поддержка многоязычности и многое другое. Он очень хорошо подходит для ведения блогов (существует плагин для переноса блогов на Wordpress).

    Посты можно писать в Markdown, а также в форматах reStructuredText и Asciidoc.

    Устанавливается Pelican через pip. При установке пользователю будут заданы несколько вопросов: где хранить файлы сайта, как будет называться сайт, куда и каким способом его нужно деплоить. Поддерживается множество способов деплоя: по FTP, по SSH, на Amazon S3, GitHub Pages, Dropbox и RackSpace Cloud Files.

    Grow


    Grow (см. также официальный репозиторий на GitHub) — очень интересный и перспективный инструмент, обнаруженный нами совсем недавно. Он написан на Python. Чтобы установить Grow, достаточно скачать скрипт с официального сайта — все необходимые пакеты будут установлены в автоматическом режиме.

    В основе Grow лежит подход «конфигурация, а не код». Что это значит? Чтобы создать новый проект (в терминологии Grow проекты называются подами — pods), нужно клонировать на локальную машину тему, которая представляет собой репозиторий на GitHub. Тема включает набор конфигурационных файлов, с помощью которых описывается вся архитектура веб-сайта. Никакого программного кода при этом писать не нужно.

    Все настройки проекта хранятся в конфигурационном файле podspec.yaml. В нем указываются следующие параметры:

    • метаданные проекта (имя и т.п.);
    • используемые в проекте инструменты предварительной обработки (например, SASS, Closure Compliler или другие);
    • информация по локализации сайта (в частности, список локалей, в которых сайт будет доступен);
    • информация о статичных файлах и специальных страницах;
    • настройки деплоя.

    Как осуществляется в Grow работа с контентом? Весь редактируемый контент (он может быть представлен как в формате Markdown, так и в HTML) хранится в директории /content. Структрура страниц описывается в конфигурационных файлах в формате YAML (см. пример здесь). Во время сборки сайта Grow генерирует страницы на основе прописанных настроек.

    Grow может автоматически переводить текстовые фрагменты — для этого используется библиотека Goslate library, работающая с Google Translate. Чтобы перевести сайт, достаточно просто выполнить команду translate.

    В качестве площадки для деплоя можно указать любой веб-сервер. Поддерживается деплой на Dropbox, Google Cloud Storage, Amazon S3, Dropbox, Google AppEngine.

    Конечно, в рамках беглого обзора рассказать обо всех особенностях работы с Grow вряд ли возможно. Рекомендуем попробовать — инструмент очень перспективный.

    Nanoblogger


    Этот генератор статических сайтов, ориентированный на создание блогов, примечателен тем, что написан на bash. В качестве основных инструментов для создания статичных HTML-страниц он использует утилиты командной строки cat, grep и sed.

    При всей своей простоте Nanoblogger по возможностям не уступаем многим генераторам, написанным на Python или Ruby. Из его полезных функций можно выделить поддержку Atom/RSS, возможность создания на сайте календаря, сортировку постов по категориям, создание архива постов и другие.

    Устанавливается Nanoblogger предельно просто: он включен в официальный репозитории большинства популярных дистрибутивов Linux и устанавливается при помощи стандартного менеджера пакетов.

    С Nanoblogger удобно работать из командной строки. Все команды подробно описаны в документации, их синтаксис прост и понятен.

    Исходный код также написан предельно просто, в случае необходимости его всегда можно модифицировать и «подогнать» под нужды конкретного проекта (см., например, публикацию, в которой автор делится собственным опытом конфигурирования блога на основе Nanoblogger).

    Для nanoblogger существуют плагины и расширения. Официальный набор плагинов (nanoblogger extras) также включен в официальные репозитории и устаналивается стандартным способом.

    К сожалению, в 2013 году работа по развитию и усовершенствованию Nanoblogger была приостановлена на неопределенный срок (см. информацию на официальном сайте).

    DocPad


    DocPad написан на CoffeeScript. Для работы с ним на клиентской машине должен быть установлен NodeJS.

    Многими он используется для блогов, но реальные возможности его применения гораздо шире. Этот продукт не представляет собой генератор статических сайтов в чистом виде: его можно использовать и как генератор, и как движок, и как шаблонизатор. DocPad оснащен достаточно удобным API, который позволяет использовать только те функции, которые нужны в данный момент; остальные всегда можно реализовать самостоятельно.

    Несомненным преимуществом DocPad является, конечно же, очень подробная документация. Кроме того, на официальном сайте опубликованы так называемые «скелеты» — заготовки, на основе которых пользователи могут создавать собственные сайты.

    Для DocPad написано множество разнообразных плагинов. Из наиболее интересных расширений отметим WYSIWYG-редакторы и веб-интерфейсы, облегчающие публикацию постов в статическом блоге.

    На официальном сайте опубликованы скрипты, автоматизирующие деплой на различные площадки: Heroku, Appfog, Windows Azure, Docker, GitHub Pages и другие. Имеется и специализированный скрипт для деплоя в облачные хранилища — Amazon S3 и GoogleStorage.

    Заключение


    Результаты проделанного обзора можно резюмировать в виде следующей таблицы:
    Генератор Язык Лицензия Установка Поддержка Расширения Деплой
    MiddleMan
    3.3.5
    Ruby MIT Требуется последняя версия Ruby, RubyGems Имеется подробная документация, обновления выходят регулярно Много плагинов и расширений, регулярно появляются новые FTP, SFTP, rsync, Git, AWS, BitBalloon
    Jekyll
    2.3.0
    Ruby MIT Требуется последняя версия Ruby, RubyGems, Rbenv Имеется подробная документация, обновления выходят регулярно Много плагинов и расширений Git, FTP. SFTP, rsync, Amazon S3, Heroku
    Octopress
    3.0
    Ruby MIT Требуется последняя версия Ruby, RubyGems, Rbenv Имеется подробная документация, обновления выходят регулярно Много плагинов и расширений GitHub Pages, Heroku, FTP, SFTP, rsync
    Hyde
    0.8.8
    Python MIT Устанавливается через pip Минимальная Плагинов очень мало GitHub Pages, Amazon S3, SFTP
    Pelican
    3.4
    Python GNU GPL Устанавливается через pip Подробная документация, активно разрабатывается и поддерживается Большое количество плагинов для блоггинга FTP, SSH, Dropbox, Amazon S3, Rackspace Cloudfiles
    Grow SDK
    0.0.31
    Python MIT Устанавливается через скрипт Подробная документация с видеороликами Плагинов нет. Имеются дополнительные темы и шаблоны Dropbox, Google Cloud Storage, Amazon S3, Google AppEngine
    Nanoblogger
    3.5
    Bash GNU GPL Устанавливается через менеджер пакетов Разработка и поддержка приостановлены Мало расширений rsync, FTP
    DocPad
    6.69
    CoffeeScript MIT Для установки нужны NodeJS и NPM Имеется подробная документация, обновления выходят регулярно Много различных расширений и плагинов Heroku, Appfog, Windows Azure, Docker, GitHub Pages
    Все перечисленные генераторы интересны и уникальны, однако самым интересным проектом на сегодняшний день нам показался Grow SDK.

    Для желающих углубиться в тему пара полезных ссылок:



    Какой опыт использования генераторов статических сайтов есть у вас, Хабраюзеры?

    Если вы не можете оставлять комментарии здесь — добро пожаловать в наш блог.

    Selectel

    110,00

    ИТ-инфраструктура для бизнеса

    Поделиться публикацией

    Похожие публикации

    Комментарии 65
      0
      Есть еще довольно интересный Nikola
        0
        Использовал MiddleMan, когда писал на Ruby, очень нравился по куче причин и сделать личный блог с довольно сложными требованиями на нём не составило большого труда.
        Хотя в статье не хватает статических блогогенераторов на Go: Hugo и Gostatic, особенно хорош последний. Вот чего не хватает в вашем материале — так это замеров средней скорости генерации. MM генерирует секунд за 15 у меня. Напрягает! © Буйнов
          +1
          Про Gostatic слышал, сегодня почитаю о нем поподробнее.
          Насчет средней скорости генерации — если честно, никогда об этом не думал. И как ее подсчитать, чтобы получился объективный и репрезентативный результат?
            +1
            У gostatic'а дока очень лаконичная, так что поначалу может быть немного тяжело, но он умеет генерировать скелет простенького сайта (gostatic -i name). Можно тут спрашивать, если что. :)

            Ну подсчитать — смотря какой точности хочется. Если просто прикинуть — то попробовать сделать сайт страниц на 500 для каждого генератора более-менее одинаковый по сложности (со вложенными темплейтами, етц). Я сконвертировал свой сайт с cyrax'а на gostatic и вышло типа 10-15 секунд против трети секунды: github.com/piranha/gostatic#speed
            0
            Спасибо за отзыв, очень приятно. :)
            0
            Салют!

            Middleman и Jekyll/Octopress не стоит ставить в один ряд, у них разные цели.

            Jekyll/Octopress позволяют с минимальными усилиями запустить сайт проекта или блог, они предоставляют готовые дизайны.

            Готовых дизайнов для Middleman вы не найдете. Всё нужно собирать ручками, зато его возможности шире. Оущения от работы с ним близки к таковым от Rails и Padrino. Удел Middleman — сайты с индивидуальным дизайном и статические прототипы фронтенда.

            Я плотно работал с Middleman, с удовольствием отвечу на вопросы.
              0
              Подскажите, а у Middleman есть возможность работать с изображениями (генерация превью заданного размера), может с помощью плагинов?
            0
            Хм, моя статейка всё-таки пригодилась.

            Не вполне понимаю, как заполнялась колонка «Деплой».
            Если это всё генераторы статических сайтов, то собранный каждым из них результат можно при помощи чего угодно загрузить на сервер, отдающий файлы по HTTP.
            Способ поддержки FTP для Octopress, по сути является написанием задания для системы сборки (rake), которая дёргает стороннюю программу (lftp) с целью загрузки указанной директории на сервер. И этот способ, по идее, должен работать с чем угодно, его можно адаптировать и на другие системы, в том числе написать аналог на bash.
            … т. е. деплой поддерживается во всех случаях на что угодно, куда можно загружать файлы при помощи командной строки. Тот же Nanoblogger можно с минимумом усилий деплоить и с помощью Git, что почему-то в его графе отсутствует. А FTP и rsync таким образом должно поддерживаться вообще всеми перечисленными.
            Поправьте меня, если я в чём-то неправ.

            А также совершенно не раскрыта тема наличия или отсутствия подсветки синтаксиса. Слишком узкая фича?
              0
              Спасибо за замечание — в целом оно верное. Речь у нас идет скорее о площадках, деплой на которые поддерживается при помощи расширений и плагинов.

              Подсветка синтаксиса в контексте этой статьи действительно показалась узкой фичей.
              +4
              Незаслуженно обойдены вниманием генераторы Hexo и Assemble, оба на NodeJS. У обоих очень широкие возможности. Например, встроенной поддержкой интернационализации i18n может похвастать далеко не каждый генератор.

              На базе NodeJS есть несколько генераторов попроще, но тоже достаточно популярных: Metalsmith, Harp, Wintersmith.

              Мне особо импонирует генератор Techy, реализованный целиком посредством task-runner'а Gulp. Сам его еще не пробовал, но есть подозрение, что, имея минималистичный функционал, он может оказаться самым гибким по настройке и наиболее расширяемым, благодаря огромной базе плагинов Gulp.
                +1
                Про Hexo и Assemble я раньше не слышал — в ближайшее время постараюсь их потестировать. Спасибо за информацию!
                +4
                Ruby, Python… а где же PHP?
                А вот он: sculpin.io/ — генератор статических сайтов написанный на PHP поверх фреймворка Symfony 2, расширяется с помощью Symfony бандлов (аля плагины такие). Умеет читать Markdown, Twig и Html. Гибкая конфигурация с помощью YAML.
                  –4
                  С генераторами на PHP я сталкивался, но в обзор они не вошли лишь потому, что с нашим облачным хранилищем они несовместимы.
                  За информацию о Sculpin спасибо, обязательно почитаю.
                    +7
                    Как облачное хранилище может быть несовместимо с результатом работы генераторов статики — набором HTML-файлов?
                    +1
                    Есть интересная CMS Kirby, написанная на PHP, которая тоже основана на файловой системе вместо базы, но генерирует сайт на лету.
                      +1
                      Кстати да, файловые CMS — хорошая тема!
                      Я вот не так давно присматривался к picocms.org — a «flat file» CMS.
                    +1
                    На middleman отлично реализована работа с assets(так ре как в Rails) + поддержка haml и sass из коробки, ну и конечно coffee
                      0
                      Пользовал Hugo, написанным на Go — штука крутая, с годной документацией и активно дорабатывается комьюнити. Лично мне оттуда оказался удобен auto reload из коробки.
                      github.com/spf13/hugo
                        +1
                        Думал, раз упомянут Jekyll, то будет упомянут и Hakyll.
                          0
                          Действительно странно, что Hakyll не упомянули. Ведь он позволяет довольно многое.
                          +1
                          www.staticgen.com/ неплохая и удобная подборка статических генераторов сайтов, в том числе доступны фильтры поиска.
                          0
                          Пытался пользовать bytexpert.ru/webproject/, но с некоторой версии запутался в усложнившемся интерфейсе.

                          Кстати, в 10 году так же были перечислены некоторые генераторы
                          habrahabr.ru/post/93499/
                            0
                            Да, WebProject сложноват получился и не очень удобен, непонятно куда элементы добавлять и как их настраивать. Сейчас я на его основе сделал ещё вариант, но уже с другим подходом — добавление и редактирование элементов сайта прямо в окне предварительного просмотра как в онлайновых CMS. Плюсом к тому перевёл программу на использование Хромиум в качестве веб-движка и подключил компилятор less, так что теперь можно собирать сайты с использованием bootstrap. Вообще программа получилась — что-то типа фреймворка для генерации разного типа сайтов, т.е. многое зависит от шаблона. Пока эта программа не выпущена, планирую к концу сентября.
                              +1
                              На прежней WebProject версии я сделал весьма внятный прототип для сайта (надо было обозначить компоновку и рубрикацию), вручил людям. Правда, люди переписали его на чём-то другом. Тем не менее, я свою функцию выполнил чётко и с удовольствием.

                              Пользуясь случаем, приношу свои благодарности! :-) (за прежнюю версию) ;-)

                              Извините меня за тупость, но мне, как бывшему программисту (да, я туп, пользовался RAD-ами, все ментальные усилия потратил на бизнес-логику вместо вникания в архитектуры), кажется так:

                              0) Основные блоки все известны — меню (верхнее горизонтальное, левое-правое вертикальные), тэги, новости/блог, галерея, карточка в галерее (фото, цена, ТТХ), заглавие (хэдер), крошки, фильтр по тэгам, окно поиска, подвал (футер), скроллинг (полной страницы или с сохранением хэдера), карта… (конечно не все названные статичны).

                              1) Если бы возможно было как, например, в Delphi, набросать на окно эти типовые панели, с докованием. Учитывая размер, который задаётся dran-n-drop/ом. А даже учитывая и поля ввода, мёртвые, но, тем не менее полезные для прототипирования.

                              2) Подложить под эти панели битмапы с артами. Назначить спискам единые буллеты Unicode или битмаповые. Или индивидуальные иконки для индивидуальных пунктов.

                              3) Определить стили текста для этих панелей.

                              4) Внести контент этих типовых панелей, особенно статичных, таких как пункты меню.

                              5) Если возможно, так же вносить (и удалять) аддитивный контент вроде новостей и единиц галерей.

                              6) Нажать кнопку «Генерировать», затем, опционально, «Послать», для полного счастья. Ну и «Открыть/Сохранить шаблон+контент проекта», естественно.

                              7) Опционально: открыть доступ для плагинов, типа вставки текстовой информации, подсветки синтаксиса и так далее.

                              Вот за такой я бы не поскупился и полсотни долларов отдать. Хотя массовый пользователь может считать иначе, вероятно 14.95…

                              Можно было бы сразу разработчику на глазах клиента прототипы корректировать. А другие клиенты могли бы и сами пользоваться, если им динамичный функционал не нужен.

                              Или я чего-то не понимаю? В Delphi же работает. Мне не понятно, почему за двадцать лет никто не сделал такого же для html.
                                0
                                А вот эти less и bootstrap меня путают. Это часа три технически подкованному человеку изучать и настраивать. Фильтр против массового пользователя. Надо на винде портативную копию без конфигурации компа и инсталляции терабайта cygwin-а и erlang-а.

                                P.S. опечатка. Читать «типа вставки табличной информации» вместо «типа вставки текстовой информации».
                                  0
                                  Не… тут вся фишка в том, что у меня в программе всё доступно из коробки. Т.е. установил программу и всё. При сборке сайта бутстрап пересобирается из less исходников прозрачно для пользователя, ничего настраивать не нужно.

                                  Кроме этого сам less файл собирается во время сборки проекта и поэтому есть возможность в элементы из которых состоит сайт добавлять фрагменты less со стилями которые относятся именно к этому элементу.
                                  0
                                  Мне кажется каждый делает как это видится ему и часто взгляды на то как надо делать идеальный статический HTML генератор просто не совпадают. Вот народ вроде бы MUSE от Adobe пользуется и вполне доволен.

                                  Программы для статических сайтов я бы разделил на 2 категории, основанные на шаблонизаторе и с произвольным html кодом каждой страницы. Плюсы и минусы каждого подхода понятны. Программисту ближе и понятнее шаблонизатор и структура сайта, обычным пользователям визуальный подход как в Word-е.

                                  В новой версии есть шаблонизатор и структура данных, но хочется чего-то визуального. И я сейчас хочу сделать что-то типа конструктора сайта со страницами из html-заготовок. Хочу взять за основу bootstrap и составлять каждую страницу сайта путём добавления заготовок: меню, слайдер, фото, текст, видео и т.п. с возможностью редактирования html и css (less). Т.е. добавил заготовку на страницу и потом подредактировал html. Ну и с возможностью публикации и сохранения. Для небольших сайтов может вполне хватить.
                                    0
                                    Меня текстовые конфигурации радуют, но только и исключительно в аспекте запихивания их в контроль версий вместо бинарных конфигураций. А вот открывать и править текстовые конфиги руками я избегаю.

                                    Во-1, они часто автоматически генерируются, и сложно угадать не перекроет ли следующий билд мои модификации.

                                    Во-2, действительно ли нужно тратить специальное время на изучение их синтаксиса?

                                    А вы предполагаете, что ваш клиент бросится css врукопашную редактировать?

                                    Сильно ли я ошибаюсь в том, что даже многие IT-шники с радостью бы взяли в оборот визуальный инструмент для непрофильных задач без необходимости его тоже глубоко изучать?

                                    Впрочем, «будем посмотреть». Буду счастлив, если обнаружу визуальный html редактор a-la RAD Borland. Непослушность Komposer/а меня окончательно добила на фронте веба.

                                    Disclaimer: всё мною написанное воспринимать как IMHO.
                                      0
                                      Согласен, HTML и CSS вручную редактировать удовольствие сомнительное. И моя мысль была изначально все сделать через диалоги настроек, где пользователь мог бы выбрать цвет, шрифт, картинку и т.п. Но в последнее время появилось много инструментов позволяющих составлять страницу из заранее созданных блоков и на выходе получить html код, мне они весьма приглянулись. Появилась мысль выпустить программу пока с простым bootstrap шаблоном в который можно было бы добавлять заранее заготовленные блоки типа сниппетов c bootsnipp.com/ После добавления можно было бы редактировать текст добавленного фрагмента, а при необходимости открыть html/css и поправить что нужно вручную.

                                      По поводу боязни, что очередной билд что-то перепишет — да, такая опасность есть. Но как раз в вышеописанном варианте в элементе будет храниться сразу html/css поэтому очередной билд или смена шаблона дизайн поломать не должны, ну если что-то глобальное что-то типа смены версии bootstrap.
                                        0
                                        А, ну со сниппетами выглядит перспективно, если они эластичны по размерам — как дизайнер растянет или как разрешение посетителя сплющит.

                                        Особенно если они будут совместимы между конструкторами (иначе кто будет наполнять экосистему?), и совместимы между собой чтобы быть визуально и по данным бесшовными (чтобы не оказалось, что один общается с мускулом, другой с носкулом, третий с xml, а их фоновые картинки не сходятся в единую). Хотя, чую риск этого очень велик.
                                          0
                                          Вот как раз bootstrap и решает все эти задачи: он адаптивный, т.е. подстраивается под экран и стандартный. А дополнительные стили можно будет добавить к каждому отдельному элементу и они попадут в итоговый css.

                                          Т.е. можно будет добавить на страницу новый нестандартный элемент просто добавив в настройки элемента html и css с сайта. Ну и если фантазировать дальше, то можно сделать что-то типа своей библиотеки из таких своих элементов и добавить возможность скопировать/вставить через буфер обмена.

                                          У меня в программе есть возможность копировать/вставлять элементы сайта через буфер обмена. Формат там простой текстовый xml поэтому даже можно будет c сайта или письма этот xml скопировать в буфер обмена и потом вставить на страницу как элемент.
                              +2
                              Jekyll очень медленный. Для личного блога или сайт компании — пойдет. Для чего-то большего — нет. Мой личный опыт: Jekyll (на сайте из дополнительных аддонов только простейшая система тегов) генерирует 5000 страниц около часа.

                              Так что советую всем использовать любой другой генератор, но только не Jekyll.
                                +1
                                Использовал Pelican — впечатления самые позитивные.
                                К нему еще есть целая куча тем, которые вполне можно корректировать, особенно, если более-менее в теме Jinja и, если не ошибаюсь, Flask.
                                Быстро работает, без проблем деплоится, очень удобно конфигурится.
                                Я делал make сначала в тестовый сайт на проде, потом уже — в основной…
                                Все работает, есть не просит, даже люди используют, совершенно ничего в этом не понимающие. Только распечатку с синтаксисом маркдауна главное не терять 8-)
                                  0
                                  Мне, кстати, Pelican тоже очень понравился.
                                  0
                                  Извиняюсь если немного не в тему. А вот допустим генерация статического HTML сайта из какой-то CMS? Зачем кэшировать php, хранить данные в БД, если можно статикой отдавать. Я не имею в виду динамику типа поиска, авторизацию, итп. Но есть же куча корпоративных сайтов где контент меняется раз в месяц, а сайт жужжит на какой-то CMS, увеличивая нагрузку там, где она не нужна.
                                  Есть ли такие решения — я пользуюсь тем чем привык — а на фронт энд деплою уже результат работы CMS?
                                    +1
                                    Teleport, Offline Explorer ;-)
                                      0
                                      Да ет понятно, я даже готов сделать VM с запуском скриптами, чтобы она сайты при запуске конвертила и деплоила — но этож костыли какие — ужоснах :)
                                      0
                                      Надо, наверное, смотреть плагины для конкретных CMS. По идее, тот же кеш — это, по сути, и есть статические страницы, так что всё возможно.
                                        0
                                        Кэш — это память. SSL+PHP Это проц+пмять. А там где можно было бы обойтись VPS живет VDS итп. Реально, есть ли инструмент для чайников? Вот я, например, сделал кому-то сайт на одной из удобных популярных CMS, клиент чайник, ему только цапы нажимать. Можно начать свой такой проект, но может что-то уже есть?
                                          +2
                                          Ну вот, например, плагин для wordpress. Нагуглил по «wordpress plugin static site generator». Думаю, для других популярных CMS можно также найти аналогичные.
                                            0
                                            О как. Все к тому что все изобретено до нас :)
                                        +3
                                        Это еще безопасность выводит на уровень выше… Боевая CMS в оффлайне — на фронт энде только результаты…
                                        0
                                        Ваше облачное хранилище последние 3 месяца постоянно глючит при аплоаде файлов по FTP.
                                        И поддержка уже месяц не может с этим разобраться, только кормят обещаниями и сожалениями.
                                          0
                                          Пока не было, но думаю с вашей вводной я попробую.
                                            +1
                                            Я с полгода назад написал простенький генератор статического сайта на MS PowerShell.
                                            Использовался Twitter Bootstrap + Jquery.

                                            Из нужных мне плюшек — автогенерация бокового/верхнего меню (правда стили еще допиливать), и индексы для каталогов где, допустим лежит очень много .markdown файлов и список этих страниц в index.htm можно забыть обновить (так собирался каталог с рассказами моими, например).

                                              0
                                              Согласен. Тоже не понял почему они в одной категории. Octopress так вообще просто сборка Jekyll с готовыми темами. Потому, что на руби?

                                              А так же:
                                              • Rubygems поставляется вместе с ruby уже несколько лет
                                              • Ставить rbenv не надо
                                              • 1.9.3 вполне хватает для запуска свех трех движков
                                              • Напмоню, что 1.9.3 вышла в 2011 году
                                              • Версии до 1.9.3 уже встретили свой EOL
                                              • Ruby который идет вместо с последний OS X вполне хватит для этой задачи
                                              • В FreeBSD и Debian подобных дистрибутивах GNU/Linux можно безболезнено установить всежий руби из PPA. (во freebsd вероятно перестанет работать portupgrade, но он не нужен)


                                              Почему такая явно не любовь к руби?

                                              Давайте про питон тоже поговорим:
                                              • Вам потребуется установить pip
                                              • Так как питон не может нормально в зависимости вам придется ставить virtual env
                                              • Так как делать все руками тупо, вам придется поставить virtualenv-wrapper
                                                +4
                                                Я не автор статьи, но отвечу.
                                                Руби лично для меня — темный лес.
                                                А питон по умолчанию есть почти в любой сборке linux.
                                                И pip, по-моему, тоже. И в любом случае лично я обязательно ставлю и pip, и virtualenv.
                                                И тот же pelican вообще без вопросов заводится и так. Это уже от перфекционизма — в virtualenv его пихать…
                                                  –4
                                                  А питон по умолчанию есть почти в любой сборке linux.


                                                  Но мир не ограничивается сборками линукса. И помоему кроме как в одомашеных он нигде не стоит из коробки. Я тому, что проблемы руби в статье высосаны из пальца.

                                                  В OS X точно надо было ставить pip руками.

                                                  Это уже от перфекционизма — в virtualenv его пихать…


                                                0
                                                Прочел тему, но так и не понял — в чем смысл генерации статических сайтов?
                                                Чем это лучше какой-либо CMS без базы например?
                                                  +2
                                                  1. скорость загрузки страниц
                                                  2. возможность хоститься на самых дешёвых хостингах
                                                  3. безопасность
                                                  4. простота бекапа
                                                    0
                                                    5. Прототипирование.
                                                      0
                                                      1. и 2. Скорость и ст-ть хостинга — наверно, хотя мне кажется времена когда для сайта-визитки нехватало мощностей хостога прошли…

                                                      3. Этот пункт пожалуй можно окенить как преимущество

                                                      4. для flat file cms технически тоже самое.

                                                      5. Прототипирование — в чем отличие от прототипирования на flat file cms? на и в целом на любой другой более мнее простой cms…
                                                        0
                                                        «в чем отличие от прототипирования на flat file cms»

                                                        Да ни в чем. ;] Круглое от красного не отличается. Прототипировать можно в чем угодно, это верно. Я имел в виду, что результат не требует для запуска никаких настроек на машине клиента, стейкхолдера или коллеги.
                                                      0
                                                      А какие есть CMS без базы?
                                                    0
                                                    Я тоже копал эту тему. Поставил следующие требования: Jade + SASS + Coffeescript с перегенерацией на лету. В итоге остановился просто на собственноручно собранном конфиге для Gulp, который ко всему еще и минифицирует картинки, ужимает CSS и JS, конвертирует TTF в EOT/WOFF для иконочных шрифтов.
                                                      0
                                                      Я поначалу тоже стал собирать свой велосипед (правда, не на Gulp, а на Grunt), но вовремя опомнился и стал вкладываться вместо этого в gh:larsonjj/yeogurt. Он шикарный, я очень советую. Coffee пока нет, но припилить не проблема :)
                                                        0
                                                        Спасибо, на видел этот проект. Я вообще как-то к yeoman прохладно отнесся изначально. Возможно стоит его покопать поглубже.

                                                        Но меня реально полностью устраивает мой «велосипед» ко всему прочему. Вчера, например, я прикрутил минуты за 3 парсинг конфигов для шаблонов в формате YAML. Проблема со всеми готовыми решениями в том, что если я хочу добавить, скажем, тот же YAML, мне нужно либо найти готовое решение, либо копать список issues на гитхабе в надежде, что кто-то уже задавал пободный вопрос, либо в конце концов делать свой модуль (разобравшись как это делается).
                                                          0
                                                          Полностью с тобой согласен в этом. Monkey patch – это просто, но гораздо лучше – найти то, что тебе почти подходит, и добавить то, чего не хватает. И отправить Pull Request.
                                                      0
                                                      Не нашел где можно установить Content-Encoding (у Amazon S3 такая возможность есть). Плохо искал?
                                                      0
                                                      pycon.ru сделан на базе carcade.readthedocs.org/en/latest/, например.
                                                      :)

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

                                                      Самое читаемое