Шаблоны - довольно здоровый бизнес на установленных языках программирования, но есть ли хорошие, которые можно обработать в JavaScript?
Под "шаблоном" я подразумеваю документ, который принимает объект данных как вход, вставляет данные в какой-то сериализованный язык разметки и выводит разметку. Известными примерами являются JSP, исходный PHP, XSLT.
Под "хорошим" я подразумеваю, что он декларативный и легкий для автора HTML, чтобы писать, что он надежный, и что он поддерживается и на других языках. Что-то лучше, чем варианты, о которых я знаю. Некоторые примеры "нехорошо":
Строковая математика:
element.innerHTML = "<p>Name: " + data.name
+ "</p><p>Email: " + data.email + "</p>";
явно слишком громоздкий, структура HTML не очевидна.
XSLT:
<p><xsl:text>Name: </xsl:text><xsl:value-of select="//data/name"></p>
<p><xsl:text>Email: </xsl:text><xsl:value-of select="//data/email"></p>
//Структурно это работает хорошо, но пусть сталкивается с этим, XSLT смущает разработчиков HTML.
Trimpath:
<p>Name: ${data.name}</p><p>Email: ${data.email}</p>
//Это хорошо, но процессор поддерживается только в JavaScript, и язык является своего рода примитивным (http://code.google.com/p/trimpath/wiki/JavaScriptTemplateSyntax).
Мне бы хотелось увидеть подмножество JSP или ASP или PHP, перенесенных в браузер, но я этого не нашел.
Что люди используют в эти дни в JavaScript для их шаблонов?
Добавление
Через несколько месяцев здесь появилось много рабочих языков шаблонов, но большинство из них нельзя использовать на любом другом языке. Большинство этих шаблонов не могут использоваться вне механизма JavaScript.
Исключение составляет Microsoft - вы можете обрабатывать один и тот же ASP либо в браузере, либо в любом другом ASP-движке. У этого есть свой набор проблем с переносимостью, поскольку вы связаны с системами Microsoft. Я отметил это как ответ, но меня все еще интересуют более портативные решения.
Спасибо за все входные данные!