Parsoid/Round-trip testing/Templates

Overview/Motivations
This is a comparison/survey of some templating systems that can be used with node.js, for the purpose of selecting an appropriate one to refactor Parsoid's round-trip testing code. Using a templating system will allow us to separate code from UI, cleaning up the current mix of HTML and JavaScript. This page focuses on DOM-based options, as we are considering using a DOM-based templating system, in line with longer term goals of Parsoid. This page is a work in progress; suggestions are welcome!

Maintenance/Usage data (as of 12/16/2013)
From npmjs.org: current version last updated 7 months ago; 144 downloads in the last week; 765 downloads in the last month.

From Github: latest commit 7 months ago; 12 contributors.

Maintenance/Usage data (as of 12/17/2013)
From npmjs.org: current version last updated 3 years ago; 15 downloads in the last week; 68 downloads in the last month.

From Github: latest commit 1 month ago; 4 contributors.

Maintenance/Usage data (as of 12/16/2013)
From npmjs.org: current version last updated 2 years ago; 21 downloads in the last week; 96 downloads in the last month.

From Github: latest commit 10 months ago; 8 contributors.

Dependencies
jsdom

Maintenance/Usage data (as of 12/16/2013)
From npmjs.org: current version last updated; 170 downloads in the last week; 654 downloads in the last month.

From Github: latest commit 7 months ago; 24 contributors.

Maintenance/Usage data (as of 12/16/2013)
From npmjs.org: current version last updated 10 months ago; 21 downloads in the last week; 110 downloads in the last month.

From Github: latest commit 6 days ago; 1 contributor.

Dependencies
es5-ext

Maintenance/Usage data (as of 12/16/2013)
From npmjs.org: current version last updated 1 year ago; 3 downloads in the last week; 21 downloads in the last month.

From Github: latest commit 1 year ago; 1 contributor.

Distal
Distal is a Template Attribution Language (TAL). Unlike Pure, Transparency and Weld, Distal uses its own syntax to add attributes to HTML.

To bind data, mark HTML with TAL attributes and execute the distal function with two arguments -- the HTML element, and the JSON data. See examples of a list and a table.

JSTAL
JSTAL is a Template Attribution Language. (It seems(?) to be similar to Distal, but less maintained/documented.)

Templating systems discussed above

 * Distal
 * DOM.js


 * JSTAL
 * Mold
 * Plates
 * PURE
 * Transparency
 * Weld

Other surveys/comparisons

 * List of templating engines for node
 * "The client-side templating throwdown: mustache, handlebars, dust.js, and more" - another templating system comparison using a test case
 * "Templating with JavaScript" - includes discussion of factors to be used in selecting a templating system
 * "Transparency vs Other Templating Engines" - speed comparison of templating engines including Distal, DOM.js, Plates and Transparency