Совместимый с Linux статический генератор сайтов с гибким, мощным и хорошо документированным движком шаблонов и поддержкой markdown «из коробки».

Вопрос или проблема

Я использовал несколько различных генераторов статических сайтов, включая:

  • GitBook
  • Hexo
  • HubPress
  • Hugo
  • Jekyll
  • Pelican

И каждый из них не имел очень важной функции: гибкого, мощного и хорошо документированного движка шаблонов. Под этим я имею в виду движок шаблонов, который:

  1. Позволяет включать содержимое из нескольких файлов в одном посте, при этом рендеринг будет таким же, как если бы содержимое нескольких файлов было помещено в пост. Например, на моем текущем блоге, работающем на Jekyll, я часто разбиваю посты на более мелкие и управляемые файлы markdown. Jekyll позволяет мне, используя движок шаблонов Liquid, включать эти файлы markdown в окончательный пост. Если вы хотите увидеть точно, что я использую и имею в виду, здесь пример файла поста, как вы можете увидеть, несколько файлов markdown включены в него с помощью {% include_relative <FILENAME> %}. Другие движки шаблонов не предоставили мне этой возможности.

  2. Может быть широко настраиваем с использованием условных операторов, тестов, итераций, greps, seds, и т. д. Например, если бы я мог проверить, содержит ли вводимая строка строку (но не обязательно равна ей), это было бы полезно. Аналогичным образом, если бы я мог удалить всё, что находится перед косой чертой / (например, если ввод был веб-адресом http://www.example.com, это удалит http:// и оставит www.example.com) в вводе и использовать это, это было бы полезно. Если ввод был бы в форме a/b (например, games-strategy/megaglest, где a это games-strategy и b это megaglest), было бы полезно, если бы я мог разделить его на две части a и b и использовать a и b отдельно в своих шаблонах.

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

Совместимость с Linux тоже важна, так как я хотел бы развернуть на страницах GitHub, и для этого, с большинством SSG (кроме Jekyll и HubPress) мне нужно иметь возможность строить сайт локально (что для меня на Linux), а затем загружать содержимое сайта в ветку gh-pages моего репозитория. Поддержка постов в markdown также обязательна. Если на сайте можно включить страницы, отличные от постов (например, страницу “обо мне” для сайта), это тоже будет отлично.

Я бы предложил взглянуть на злого близнеца Jekyll Hyde.

  • Шаблоны через Jinja2, который имеет обширную документацию и включает обширные условные операторы и т. д.
  • Markdown реализован в Python Markdown, который имеет обширный список расширений и API для расширений. Одно из доступных расширений, использующих этот API, это markdown include.
  • Все вышеперечисленные инструменты написаны на Python, поэтому совместимость с Linux не является проблемой
  • Hyde имеет 4 команды из командной строки:

    • hyde create Создать начальную структуру файлов
    • hyde gen Генерировать страницы, по умолчанию инкрементально
    • hyde serve Запустить локальный тестовый веб-сервер с автоматической (пер-)генерацией
    • hyde publish Опубликовать сгенерированные файлы в указанное место, например, на страницах GitHub.

Ответ или решение

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

На основе вашего опыта с различными статическими генераторами, мы можем рассмотреть следующий вариант:

Hyde

Hyde – это статический генератор сайтов, который можно рассматривать как «злую сестру» Jekyll. Ключевые преимущества Hyde заключаются в следующем:

  1. Шаблонизатор Jinja2:

    • Гибкость: Jinja2 предлагает широчайшие возможности для создания шаблонов, включая расширенные условные конструкции, итерации и простое управление данными.
    • Документация: Jinja2 располагает обширной и понятной документацией, что упрощает использование всех доступных функций, включая возможности работы с фильтрами и макросами.
  2. Поддержка Markdown:

    • Hyde использует библиотеку Python Markdown, которая поддерживает множество расширений, позволяющих расширить функциональность Markdown. Одним из таких расширений является markdown-include, которое позволяет включать содержимое из других файлов Markdown непосредственно в ваши статьи, что соответствует вашему требованию о разбиении постов на более мелкие части.
  3. Линукс-совместимость:

    • Как все компоненты Hyde написаны на Python, его использование на Linux не вызывают никаких проблем. Вы сможете легко разрабатывать и развертывать свои сайты на этой платформе.
  4. Команды для работы:

    • Hyde предлагает удобный интерфейс командной строки с четырьмя основными командами:
      • hyde create: создание начальной структуры файлов.
      • hyde gen: генерация страниц, с инкрементальной обработкой по умолчанию.
      • hyde serve: запуск локального веб-сервера с автоматической генерацией при изменениях.
      • hyde publish: публикация сгенерированных файлов в указанное место, включая GitHub Pages.

Дополнительные Соображения

Вы упомянули важность возможности включения страниц, кроме постов, в структуру вашего сайта. Hyde позволяет легко организовать иерархию страниц, что будет полезно для создания, например, страниц «О сайте» или «Контакты». Кроме того, возможность использовать классы и функции в шаблонах открывает новые горизонты для персонализации вашего контента.

Заключение

Hyde, обладая мощным шаблонизатором Jinja2 и поддержкой Markdown, отвечает всем вашим требованиям к статическому генератору сайтов. Его простота в использовании и развертывании на Linux делают его идеальным выбором для таких проектов. Рекомендуется более подробно изучить документацию Jinja2 и Python Markdown, чтобы максимально использовать все возможности, которые они предлагают.

Таким образом, если вы ищете стабильный и мощный инструмент для создания статических сайтов, Hyde может стать вашим идеальным выбором. Не забудьте протестировать его в вашем рабочем процессе, чтобы убедиться, что он удовлетворяет всем вашим потребностям!

Оцените материал
Добавить комментарий

Капча загружается...