<commit_before><img align="left" src="http://dl.dropboxusercontent.com/u/79007/combyne.png">

**Stable: 0.3.3**

[![Build Status](https://travis-ci.org/tbranyen/combyne.png?branch=master)](https://travis-ci.org/tbranyen/combyne)
[![Coverage Status](https://coveralls.io/repos/tbranyen/combyne/badge.png?branch=master)](https://coveralls.io/r/tbranyen/combyne?branch=master)

No dependencies.  Can be loaded as a browser global, AMD module, and Node
module.  Works with Browserify.  Can be installed via NPM or Bower.

## Getting started. ##

### Node. ###

``` bash
npm install combyne
```

Require in your source:

``` javascript
var combyne = require("combyne");
```

### AMD. ###

``` javascript
// Configure the path, if necessary.
require({
  paths: {
    combyne: "path/to/combyne"
  }
});

// Use in a module.
define(["combyne"], function(combyne) {});
```

### Browser global. ###

[Include the latest stable](https://github.com/tbranyen/combyne/releases)
in your markup:

``` html
<script src="combyne.js"></script>
```

## Basic usage. ##

``` javascript
var tmpl = combyne("hello {{msg}}!");
tmpl.render({ msg: "world" });

// => hello world!
```

## Features. ##

Combyne works by parsing your template into an AST.  This provides mechanisms
for intelligent compilation and optimization.  The template is converted to
JavaScript and invoked upon calling render with data.

### Comments. ###

Comments are useful for ignoring anything between the open and close.  They can
be nested.

``` javascript
var tmpl = combyne("test {%-- not parsed --%}");
tmpl.render();

// => test 
```

### Custom delimiters. ###
<commit_msg>Adding in Sauce Labs badge.<commit_after><img align="left" src="http://dl.dropboxusercontent.com/u/79007/combyne.png">

**Stable: 0.3.3**

[![Build Status](https://travis-ci.org/tbranyen/combyne.png?branch=master)](https://travis-ci.org/tbranyen/combyne)
[![Coverage Status](https://coveralls.io/repos/tbranyen/combyne/badge.png?branch=master)](https://coveralls.io/r/tbranyen/combyne?branch=master)

No dependencies.  Can be loaded as a browser global, AMD module, and Node
module.  Works with Browserify.  Can be installed via NPM or Bower.

## Getting started. ##

### Node. ###

``` bash
npm install combyne
```

Require in your source:

``` javascript
var combyne = require("combyne");
```

### AMD. ###

``` javascript
// Configure the path, if necessary.
require({
  paths: {
    combyne: "path/to/combyne"
  }
});

// Use in a module.
define(["combyne"], function(combyne) {});
```

### Browser global. ###

[Include the latest stable](https://github.com/tbranyen/combyne/releases)
in your markup:

``` html
<script src="combyne.js"></script>
```

## Browser support. ##

<a href="https://saucelabs.com/u/tbranyen">
  <img src="https://saucelabs.com/browser-matrix/tbranyen.svg" alt="Selenium Tests Status" />
</a>

## Basic usage. ##

``` javascript
var tmpl = combyne("hello {{msg}}!");
tmpl.render({ msg: "world" });

// => hello world!
```

## Features. ##

Combyne works by parsing your template into an AST.  This provides mechanisms
for intelligent compilation and optimization.  The template is converted to
JavaScript and invoked upon calling render with data.

### Comments. ###

Comments are useful for ignoring anything between the open and close.  They can
be nested.

``` javascript
var tmpl = combyne("test {%-- not parsed --%}");
tmpl.render();

// => test 
```

### Custom delimiters. ###

{'fraction_non_alphanumeric': 0.1767266395821242, 'fraction_numerical': 0.0046430644225188625, 'mean_word_length': 4.254573170731708, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 16, 'https://': 12, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7671297', 'n_tokens_mistral': 1238, 'n_tokens_neox': 1164, 'n_words': 306}