EJS
A JavaScript templating engine that compiles plain-JavaScript control flow embedded in HTML into a render function, compatible with Node, browsers and the Express view system.
EJS (Embedded JavaScript templates) is a templating engine that lets a template mix HTML with plain JavaScript control flow, escaped or unescaped output, includes, and custom delimiters. Templates can be compiled once and rendered repeatedly, or rendered directly from a string or a file.
It supports both CommonJS and ES Module imports, works from Node back to very old versions as well as in the browser, and its published package imports cleanly under bundlers including Rollup, Rolldown, esbuild, Webpack, Vite, Browserify, Bun and Deno. It also complies with the Express view system and supports static caching of compiled templates.
Because EJS executes arbitrary JavaScript by design, an application using it is responsible for validating any user input passed into a render call.