Fala, amigo!
Não saberia te dizer em detalhes, mas vou tentar te dar um norte:
Linguagens de template são como uma forma (molde), onde colocamos o conteúdo que queremos
Pense que tu tem uma variável e quer colocá-la em uma scring, provavelmente tu vai usar:
const idade = 20
const frase = `A idade da pessoa x é ${idade} anos`
console.log(frase)
// retorna: 'A idade da pessoa x é 20 anos'
Aí é só considerar que a string frase é um template, e a variável idade é o conteúdo, e normalmente é isso que chamamos as "Template Literals" dentro de js.
Agora, linguagens de template, te aconselho a estudar um pouco sobre algumas delas, começando por Handlebars, uma linguagem de template que te permite transformar código js em conteúdo dinâmico que pode ser formatado em um HTML, e se tu quiser, pode começar por aqui: PLayground do Handlebars.
Alguns outros frameworks, como o Django, utilizam linguagens de template "próprias", na documentação oficial eles explicam um pouco como funciona.
Espero ter ajudado um pouco, abraço!