经过一番搜索,我找到了"client-side-haml-js" github项目。看起来它应该能满足您的需求:
clientside-haml-js是一个用CoffeeScript编写的编译器,将HAML格式的文本模板编译成生成HTML的Javascript函数。它受到服务器端haml Javascript项目的启发,并且已经被编写为与Ruby服务器端HAML功能兼容,支持所有主要浏览器(IE 7+、Firefox 3.6+、Chrome 10+、Safari),具有最小的运行时依赖关系(仅使用underscore.js、underscore.string和CoffeeScript(如果在您的模板中使用CoffeeScript))。
注意:haml编译器需要带有JSON解析器的浏览器。对于像IE7这样的浏览器,您还需要包含JSON实现。请参见http://www.json.org/了解更多详细信息。可以在https://github.com/douglascrockford/JSON-js上获取JSON实现。
他们的github页面上有一个示例:
var fn = haml.compileStringToJs("%h1\n %div\n %p\n %span");
var html = fn();
看起来它也支持类似于jquery-templates的text/haml-template方法:
<script type="text/haml-template" id="simple">
%h1
%div
%p
%span
</script>
<script type="text/javascript">
var fn = haml.compileHaml('simple');
var html = fn();
</script>
var div = document.createElement('div'); div.setAttribute(...); div.appendChild(...)
。此外,使用DocumentFragment将导致更高的性能,或者更好的方法是制作或使用虚拟DOM库。React很好,因为JSX编译成创建虚拟DOM的JS调用,这样更快。 - trusktr