как подключать многоразовые html компоненты?

Допустим, что у нас есть 5 страниц и на каждой из них одинаковые header, footer и карточки. Как лучше всего подключать отдельные html файлы в 2024году?


Ответы (3 шт):

Автор решения: SeVlad

Можно использовать SSI.

Для поддержки работы именно в html (не в shtml) нужно немного изменить конфигурацию сервера.

Но лучше начать изучать хотя бы php.

→ Ссылка
Автор решения: Deniska SosiSka

Есть две группы инструментов которые реализуют использование отдельных компонентов - это шаблонизаторов и фреймворки с поддержкой такой функциональности.

Шаблонизаторы:

  1. Mustache
  2. Handlebars
  3. Pug

Фреймворки:

  1. React
  2. Vue
  3. Angular

Если вы говорите про нативную поддержку прямо в html, то её нет.


Так-же существует множество фрйемворков для генерации страниц из модулей на бэкенде, например:

  1. Blazor (C#)
  2. Django (Python)
  3. Ruby on Rails (Ruby)
  4. Laravel (PHP)
  5. Express.js (node.js)
→ Ссылка
Автор решения: SvyaT_T

Для JS я использую плагин Gulp Rigger:

.pipe(rigger())

"use" (документация: https://www.npmjs.com/package/gulp-rigger)
//= components/footerSpoiler.js
    

Для HTML я использую плагин gulp Panini:

.pipe(panini({
   root: srcPath,
   layouts: srcPath + "template/layouts/",
   partials: srcPath + "template/partials/",
   data: srcPath + "template/data/"
}))

"use" (документация: https://www.npmjs.com/package/panini)
---
layout: default
title: Catalog
icon: assets/images/heart-like.svg
style: assets/css/catalog-style.min.css
js: assets/js/indexJS.min.js
---
<div class="wrapper">
   {{> header }}
   
   {{> footer }}
</div>
→ Ссылка