Я создаю хостинг для статических веб-сайтов и хотел бы создавать веб-страницы по умолчанию для своих пользователей и хотел бы использовать для этого Hugo. Вопрос в том, как лучше всего динамически генерировать веб-страницы для нескольких пользователей? Это моя мысль до сих пор:
Мне это кажется неправильным, так как несколько пользователей будут конкурировать за запуск Hugo, и я думаю, что было бы намного проще, если бы я мог просто создавать файлы html непосредственно из бэкэнда, а не создавать файлы md, а затем запускать Hugo для создать html-файлы. Есть ли способ лучше и умнее?
Если я не ошибаюсь, кажется, вы хотите создать похожий портал WordPress или что-то подобное, перейдя от темы Markdown plus к содержимому HTML/CSS/JavaScript. Конечные пользователи редактируют контент в Markdown, выбирают тему, а об остальном позаботятся.
ИМХО, может быть два пути:
(1) Использование Hugo на сервере и забота о папках назначения и сгенерированных артефактах, а также сопоставление сгенерированных ссылок с интерфейсом, соответствующим хостингу вашего конкретного конечного пользователя. Вы можете создать оболочку Hugo, в которой входные данные будут передаваться Hugo, а сгенерированные страницы будут находиться в папке public
. Таким образом, вы должны полагаться на внешний инструмент (читай Хьюго) и желать иметь версию с долгосрочной поддержкой, как и многие другие системы (например, Ubuntu, Java, Windows).
(2) Создание подобного генератора, такого как Hugo или другого (см. СтатикГен для большего количества генераторов на разных языках). Вам может понадобиться ядро генератора статических сайтов на основе Markdown, например, синтаксический анализатор Markdown, трансляторы и генераторы ссылок и т. д. Приложив дополнительные усилия, вы можете лучше контролировать каждый меньший компонент/библиотеку, которую вы используете, можете настроить сгенерированный артефакты, их назначение и т. д.
Примечание: Markdown — неплохой выбор для контента. Даже WordPress предлагает поддержку Markdown. Тем не менее, сам Markdown не стандартизирован, а скорее де-факто. Есть так много вкусов. Возможно, вы захотите найти или придерживаться хорошего, например, CommonMark.