если вы хотите генерировать html динамически воспользуйтесь vue, react, angular.
Если вы хотите статическую страничку собрать из кусочков html - воспользуйтесь шаблонизаторами. Webpack поддерживает ejs например. Есть еще handlebars. Есть фреймворки построеные вокруг статических шаблонизаторов, например
https://www.11ty.dev/