Jade vs Haml vs dot (v7)

Revision 7 of this benchmark created on


Preparation HTML

<script src="//rawgithub.com/visionmedia/jade/master/jade.js"></script>

<script src="//rawgithub.com/creationix/haml-js/master/lib/haml.js"></script>

<script src="//rawgithub.com/olado/doT/master/doT.js"></script>

<script>
  window.sharedVariables = {
   header: "Header",
   header2: "Header2",
   header3: "Header3",
   header4: "Header4",
   header5: "Header5",
   header6: "Header6",
   list: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
  };


      
</script>

Setup

var jade = window.jade,
        Haml = window.Haml,
        doT = window.doT;

Test runner

Ready to run.

Testing in
TestOps/sec
Jade
var jadeTemplate = jade.compile("div\n  h1.header!= header\n  h2.header2!= header2\n  h3.header3!= header3\n  h4.header4!= header4\n  h5.header5!= header5\n  h6.header6!= header6\n  ul.list\n    - each item in list\n      li.item!= item");

jadeTemplate(sharedVariables);
ready
Haml
var hamlTemplate = Haml("%div\n  %h1.header= header\n  %h2.header2= header2\n  %h3.header3= header3\n  %h4.header4= header4\n  %h5.header5= header5\n  %h6.header6= header6\n  %ul.list\n    :each item in list\n      %li.item= item");

hamlTemplate(sharedVariables);
ready
doT
var doTtemplate = doT.template("<div><h1 class='header'>{{= it.header }}</h1><h2 class='header2'>{{= it.header2 }}</h2><h3 class='header3'>{{= it.header3 }}</h3><h4 class='header4'>{{= it.header4 }}</h4><h5 class='header5'>{{= it.header5 }}</h5><h6 class='header6'>{{= it.header6 }}</h6><ul class='list'>{{ for (var i = 0, l = it.list.length; i < l; i++) { }}<li class='item'>{{= it.list[i] }}</li>{{ } }}</ul></div>");

doTtemplate(sharedVariables)
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.