There is one, XSLT. However, outputting valid XML was considered too arduous for the average webdev so we need to reimplement everything we want in JS instead.
XML and XSLT has been a mainstay of my career for over 20 years. They are web standards with multiple implementations. It'll keep plugging along for another 20 years while all these other proprietary "frameworks" come and go.
To be fair, when XML was cool, XSL did a good job in carrying out templating-language-like-features. Use case was like: Write semantic XML document, use XSL to generate XHTML, render XHTML in browser. Modern browsers still run XML with XSL.
I still use browser-side XSLT in my apps. Google had threatened to remove support but there was much pushback from the enterprise community that has many business apps using that approach so Google backed down. Still no guarantee that they'll pull the plug in the future.
Almost all webservers have support for server side includes. SSI are very limited and basically all you do is include one html file in another html file like <!--# include file="/footer.html" -->. It is the perfect combination of templating power and static html. It allows you to avoid all of the complexities of "static site generators" and "deploying" and all that cargo cult jazz.
Yes x 1,000,000. This is the only thing that drives me to something like React (other than the fact that I’m not actually a programmer and it’s the only thing I know) to build a site.
I know HTML! I know CSS! But how do I make a template sidebar, say, without a framework. It’s possible, sure. But a PITA. React just makes it easy, which is like using a baseball bat to kill a fly.
Check out Eleventy[0]. It’s my static site generator of choice. It’s pretty simple to pick up, high HIGH use case ceiling, and delightfully quick. Works with a bunch of different templating languages, too.
You are undeservedly downvoted. I think that there is a strong case for using frames as a templating strategy for static sites that are hosted on say S3 or Github.
Server Side Includes was probably the only thing that came close. While not actual templating, it did serve me well for code reusability and being able to make updates in one place. I made heavy use of them, even after discovering php3. It wasn't until I discovered smarty that I stopped using them. I miss those simpler days.
HTML Imports is (was) an awesome solution to client-side declarative composition. Sadly, it never gained traction in browsers - mainly because Mozilla said they won't implement it. The only option now is imperative code.