Метод создания шаблонов HTML для веб-серверов, на которых размещено статическое содержимое.

В прошлом я делал веб-приложение Ruby on Rails. При использовании RoR для каждой страницы использовался стандартный «шаблон», а весь контент, вставленный в «шаблон», обрабатывался на стороне сервера. Например, я определил стандартные верхний и нижний колонтитулы, и когда был сделан запрос для определенной страницы, содержимое этой страницы вставлялось между верхним и нижним колонтитулами, а затем передавалось клиенту.

В настоящее время я использую Firebase в качестве серверной базы данных, механизма обновления в реальном времени (pub/sub) и инструмента для размещения другого веб-приложения. Хостинг Firebase просто обслуживает статические файлы HTML/JS, а клиенты выполняют всю тяжелую работу (в отличие от RoR) для аутентификации, манипуляций с DOM на основе пользователя и т. д.

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

Итак, мой вопрос: существует ли стандартный метод (или, возможно, инструмент), который, по сути, позволил бы создать шаблон в виде шаблона, а затем автоматически «скомпилировать» в отдельные файлы HTML, которые я мог бы затем разрешить Firebase хост? Я не обязательно хочу использовать что-то вроде AngularJS, хотя я думаю, что это по своей сути решает проблему.

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

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

«Мне нужен не инструмент для создания статического сайта, а инструмент для редактирования HTML по шаблону». Не могли бы вы уточнить, в чем вы видите здесь различия? … Если я правильно понимаю ваш случай, вы хотите создавать/редактировать HTML-шаблоны и использовать эти шаблоны для создания нескольких статических страниц (которые образуют веб-сайт)… именно это и делают генераторы статических сайтов, не так ли?
Вернувшись и перечитав мой вопрос и ваш комментарий, я думаю, что это одно и то же. В то время я думал, что генератор статических сайтов попытается включить в себя все функции веб-сервера, а я просто хотел, чтобы статические HTML-файлы размещались у меня. Но опять же, да, я думаю, что теперь это одно и то же...

Ответы (1)

Я думаю, что генератор статических сайтов — это то, что вам нужно.

Обычно (но не обязательно) это инструменты командной строки:

  1. Вы помещаете файлы шаблонов и содержимого в определенные папки.
  2. Вы запускаете инструмент.
  3. Вы получаете статические файлы HTML.

Теперь вы можете просто взять все сгенерированные файлы HTML и загрузить их.

Решений так много (см., например, списки на http://staticsitegenerators.net/ и https://www.staticgen.com/ , чтобы получить представление), что трудно дать конкретную рекомендацию, не указав, что именно вы ожидаете от него.

Популярными примерами являются Jekyll , Pelican , Middleman и Hexo . Мне нравится Hugo , в основном из-за его отличного встроенного тестового сервера с поддержкой перезагрузки в реальном времени ( см. также мой вопрос ), но я думаю, для вас это не имеет значения.
Поэтому, если вы считаете, что генератор статических сайтов может быть решением для вашего случая, не стесняйтесь создавать новый вопрос (с тегом ), где вы явно указываете, какие функции вам нужны, например: Должен ли он использовать определенный механизм шаблонов? В каком формате (например, Markdown) вы хотите писать контент? Какой дизайн URL следует использовать? Нужно ли генерировать только файлы HTML? Должен ли он создать фид? У вас есть разные «типы контента»? Должен ли он минимизировать сгенерированный HTML? и т. д.