Snakeskin
This is Frank — snake-cowboy who loves templates.
Snakeskin — awesome JavaScript template engine with the best support for inheritance.

Demo
[Documentation] (https://github.com/kobezzza/Snakeskin/wiki)
FAQ
Features
- 2 types of syntax: classic and Jade-Like;
- Object-oriented approach with a very rich features for code-reuse (inheritance, composition, mixing, etc.);
- Close to JS set of directives;
- Support BEM (as in the Stylus) at the level of syntax;
- Support for localization at the level of syntax;
- Support for macros and filters;
- Support for modules;
- High-speed compilation;
- Work in browsers, as well as on the server (node.js);
- The engine is written in pure JavaScript and does not have any dependencies;
- The source code is designed to work with Google Closure Compiler in advanced mode;
- Good code coverage;
- Detailed [documentation] (https://github.com/kobezzza/Snakeskin/wiki) with examples.
Plugins
Example
- template page(youAreUsingSnakeskin)
- doctype
< html lang = en
< head
< title :: Snakeskin
#< script
if (foo) bar(1 + 5)
< body
< h1 :: Snakeskin — the best template engine
< #container.b-info
- if youAreUsingSnakeskin
< p.&__good :: Congratulations, you are using the best!
- else
< p.&__bad :: Get on it!
< p.&__description
Snakeskin — a client-server template engine with
simple and straightforward syntax and a rich set of features.
page(true);
Is converted to
<!DOCTYPE html>
<html lang="en">
<head>
<title>Snakeskin</title>
<script type="text/javascript">
if (foo) bar(1 + 5)
</script>
</head>
<body>
<h1>Snakeskin — the best template engine</h1>
<div id="container" class="b-info">
<p class="b-info__good">Congratulations, you are using the best!</p>
<p class="b-info__description">Snakeskin — a client-server template engine with
simple and straightforward syntax and a rich set of features.</p>
</div>
</body>
</html>
The MIT License.