Генераторы статических сайтов, новый тренд
Целью GSS является добавление динамизма CMS к скорости загрузки статического узла.
Создание страницы по требованию, как это делает система управления содержанием, имеет преимущества, такие как адаптация страницы к пользователю, а также дискомфорт, поскольку доступ к базе данных для получения различных элементов контента значительно замедляет доступ. Кстати, поскольку страница, представленная посетителям, в основном одинаковая, строить ее при каждом посещении неразумно. Тайтмы на это отвечают, но не всегда работают очень хорошо. Еще один главный недостаток - безопасность: хакеры нацелены на популярные CMS, а когда находят лазейку, это позволяет им сразу получить доступ к миллионам сайтов и установить в них вредоносные программы, что уже произошло с пользователями Wordpress и Drupal.
Статическое решение
Ответ на эти проблемы - установка содержимого локально или на сервер в виде текстовых файлов (в формате markdown или других) и создание статических HTML-страниц, которые безопасны и быстро загружаются. Это цель генератора статических сайтов. Это не мешает иметь динамическое содержание, оно реализуется плагинами JavaScript, а также использовать темы, как под Wordpress, достаточно выбрать из нескольких шаблонов.
Например, в случае Jekyll каждый пост, созданный с помощью текстового редактора, помещается в текстовый файл в каталоге _ posts. Шаблон содержит поля для каждой части содержимого. Затем генератор интегрирует содержимое в шаблон и помещает созданную HTML-страницу в каталог _ сайта, который доступен посетителям через Интернет.
Шаблон - это шаблон, используемый для построения страницы. Простой пример:
<head> <title>{{ title }}</title> </head> <body> <div id="content"> {{ content }} </div> </body>
Шаблон содержит две переменные - «title» и «content», которые заменяются заголовком и содержимым отредактированного текстового файла. Веб-мастеру не нужно выполнять шаблон, он включен в каждую тему генератора. В противном случае можно использовать такой шаблонный язык, как Liquid, Stylus и т.д.
Функции генератора статических узлов
Все генераторы имеют общий список функций:
Мета-данные
В текстовом формате markdown, текстиле или другом формате предусмотрены поля для данных постоянного типа, таких как заголовок, авторское имя, дата, категория, имя пути и т.д. Эти поля будут отформатированы в CSS и представлены в соответствии с планировкой, предусмотренной шаблонами.
Символические связи
Это то, что более или менее хорошо работает в зависимости от ГСС. Это, например, замена в шаблонном файле включенного файла с такой версией, как script-1.2.3.js, на уникальное имя: script-js.
Статические активы (статические активы)
Это элементы, которые не обрабатываются генератором, такие как изображения, JS-файлы или CSS. Эти файлы помещаются в выделенный каталог, а генератор записывает их в оперативный каталог.
Другие функции поддерживаются только некоторыми GSS:
Комментарии
Это делается с помощью плагина и базы данных, но можно также добавить их на страницы или использовать внешний сервис вроде Disqus.
Шаблон страницы
Возможность выбрать тему не для всего сайта, а для каждой страницы. Шаблоны могут состоять из простой HTML-страницы или выполняться с использованием языка шаблона, например, Jade, Haml, Musache, eRuby...
Гит
Git - это совместная система обновления проектов, разработанная для Linux. Он также может использоваться для обычного веб-сайта и позволяет иметь удаленный образ, который является точной копией локального содержимого. Возможно, он позволяет работать многим, но это только один вариант. Не все генераторы предлагают Git, это хорошо, если мы уже использовали GitHub.
Дополнительная база данных
С помощью GSS билеты хранятся в текстовых файлах, а не в базах данных. Это не мешает использовать данные из базы, хранящейся на сервере, такие как список сохраненных пользователей, комментарии.
Относительные статьи
Под WordPress отображается список статей, связанных со страницей, отображаемой с помощью плагина. То же самое и с генераторами, список плагинов в основном включает в себя «связанные посты».
Sitemap и RSS
Генератор также может автоматически обновлять файл sitemap и RSS при добавлении новой страницы или при изменении страницы. Под Wordpress ситемап производит плагин.
Поле поиска
Чтобы добавить поле поиска, необходимо включить сценарий или плагин на страницы. Результат будет ускорен, если генератор выдаст индексный файл необычных слов. Также можно добавить поле поиска, предоставленное внешним сайтом (например, Google), который индексирует страницы.
Основные ГСС
Все они используют формат markdown и текстиль для редактирования текста, среди прочего. Все они бесплатные, открытые исходники и под свободной лицензией. Программировать на их использование не нужно, язык полезен только в том случае, если ты хочешь внести свой вклад в код.
Может использоваться для размещения сайта на GitHub, кроме плагинов.
Требуется YAML-описание метаданных в каждой странице и соответствующий код в шаблере.
Liquid - обязательная система шаблона, и она не проста в использовании.
Редактирование в Markdown или reStructuredText.
Поддержка нескольких языков.
Возможна интеграция с Twitter.
Предварительный просмотр возможен локально .
Гибкость позволяет непосредственно принимать содержимое статического сайта или другого генератора.
Выкладывается на GitHub, Heroku, персональный хостинг с Git, в один заказ.
Импортирует страницы Wordpress, Джумла, Джекилл.
Поддерживает большинство плагинов Джекилла.
Локальный сервер для предварительного просмотра .
Поколение очень быстрое и предназначено для всех типов сайтов.
Особенность заключается в создании элементов, которые могут собираться вместе для формирования веб-страниц.
Страница создается в HTML-шаблере, JSON, YAML или Gruntfile.
Создание HTML/CSS/JS страниц является одним из вариантов.
Страницы можно редактировать локально или онлайн.
Особенно просто устроиться на работу.
Этот список не ограничивает, однако я постарался включить генератор для каждого языка программирования. Также можно было бы включить Лектора (Питона).
В конце концов, нужно ли использовать GSS или CMS? Все функции CMS могут быть предоставлены статическому сайту, когда он может общаться с сервером, и динамически редактировать страницу, что не создает проблем с Ajax или WebSocket (второй совсем недавно реализован). Проще использовать Wordpress, чем генератор, поэтому блогеры, не являющиеся компьютерщиками, наверняка предпочтут использовать эту CMS .
Но если безопасность или реактивность - важные точки для сайта, то генератор - явно лучшее решение.