Я активно использую и Discourse, и Jekyll, и недавно начал экспериментировать с попыткой использовать экземпляр Discourse в качестве системы управления контентом для статического сайта на Jekyll. Я только что начал с этим работать, и одна из причин, по которой я пишу сейчас, — просто узнать, делал ли кто-то уже что-то подобное. Или, возможно, у вас есть лучшее решение, и вы сможете отговорить меня от траты времени на это ![]()
Как я представляю себе работу этой системы
-
Контент в формате Markdown редактируется в экземпляре Discourse (что даёт нетехническим пользователям удобный интерфейс для редактирования) и может быть легко изменён, обновлён и т. д. Панель форматирования и другие удобные функции делают работу с нетехническими пользователями гораздо приятнее.
-
В сайте Jekyll есть YAML-файл, содержащий массив URL-адресов постов (или ID постов, если мы решим, что базовый URL Discourse всегда один и тот же…), которые должны опрашиваться для получения контента.
-
Простой плагин Jekyll будет запускать хук для опроса каждого URL (при каждом перезапуске сервера Jekyll?) и получать данные. (Для многих «открытых» экземпляров Discourse аутентификация не потребуется. В некоторых случаях может потребоваться предоставить API-ключ)
-
JSON-контент загружается с URL путём добавления
.json, а ключrawэтого JSON-объекта содержит Markdown в виде строки, заключённой в двойные кавычки. -
К Markdown необходимо добавить YAML-фронтматтер Jekyll, а также выполнить очистку, например, удалить обрамляющие кавычки и заменить
\nна переносы строк. -
Jekyll компилирует эти страницы целиком в HTML, либо вы можете встроить их в другие страницы через
{{include file | markdownify }}.
Зачем это нужно?
-
Значительно упрощает работу нетехнического редактора или сопровождающего при обновлении статического сайта.
-
Идеально подходит, если у вас уже есть Discourse и вы хотите создать статический веб-сайт, например, для бизнеса.
-
Статические сайты недороги, надёжны и безопасны.
-
Почему не использовать Page Publishing? Когда я пробовал, страницы требовали значительной доработки, чтобы выглядеть хорошо. Jekyll даёт больше контроля и, конечно, позволяет сочетать контент, управляемый через Discourse, с контентом из других источников.
Что думает сообщество? Стоит ли это развивать?