Lenguaje de plantillas para renderizado tanto del lado del cliente como del lado del servidor

Estoy investigando las plantillas de JavaScript como una forma de representar nuestras vistas. El objetivo es poder representar el lado del cliente para los usuarios que tienen JavaScript habilitado para representar las mismas plantillas / lado del servidor de datos para los usuarios (y rastreadores) que no lo hacen.

Requisitos

Representación del lado del cliente. Representación del lado del servidor (JVM admite una opción agradable). Soporte razonable para bucles, condicionales, manipulación de texto, parciales, macros y extensiones / complementos. Comunidad de usuarios razonablemente grande / activa.

Soluciones insatisfactorias encontradas hasta ahora

Bigot: admite la representación del lado del servidor y del cliente, comunidad grande / activa, pero las plantillas "sin lógica" parecen muy restrictivas y dolorosas. Node.js plusguion baj: Las plantillas JS como el subrayado proporcionan toda la flexibilidad de plantilla que necesito, pero hacerlas del lado del servidor usando Node.js es MUY frágil. node.js es nuevo y bastante inestable y su gestión de paquetes (exportaciones ...) requiere muchos hacks para que las cosas funcionen correctamente. Plantillas de cierre de Google: estos se compilan en JS y Java y tienen muchas de las características que quiero. Desafortunadamente, al navegar por los grupos de Google, parece que faltan muchas características básicas (como la capacidad de bucle sobre matrices asociativas) y eldocumentación para hacer sus propios complementos tiene un aspecto muy escaso y doloroso. Además, no puedo decir quién en la comunidad en línea lo está utilizando, Google no está aceptando contribuciones de código abierto para ello y no tienen el ancho de banda para lanzar nuevas funciones.isótop: escriba plantillas en JS y use Johnson, un contenedor Ruby para el tiempo de ejecución de Mozilla SpiderMonkey JS, para representar esas plantillas en el lado del servidor. Parece prometedor, pero el proyecto no ha tenido compromisos en más de 6 meses.Líquid con Liquid.js: el lenguaje de plantillas Liquid se ve excelente, pero el proyecto liquid.js parece no haber sido probado (¡no hay pruebas en IE!), no tiene documentación, no está claro si alguien lo usa, y no se ha actualizado en mucho tiempo. @

Respuestas a la pregunta(3)

Su respuesta a la pregunta