-[](https://badge.fury.io/py/chevron)
-[](https://travis-ci.org/noahmorrison/chevron)
-[](https://coveralls.io/github/noahmorrison/chevron?branch=master)
-
-A python implementation of the [mustache templating language](http://mustache.github.io).
-
-Why chevron?
-------------
-
-I'm glad you asked!
-
-### chevron is fast ###
-
-Chevron runs in less than half the time of [pystache](http://github.com/defunkt/pystache) (Which is not even up to date on the spec).
-And in about 70% the time of [Stache](https://github.com/hyperturtle/Stache) (A 'trimmed' version of mustache, also not spec compliant).
-
-### chevron is pep8 ###
-
-The flake8 command is run by [travis](https://travis-ci.org/noahmorrison/chevron) to ensure consistency.
-
-### chevron is spec compliant ###
-
-Chevron passes all the unittests provided by the [spec](https://github.com/mustache/spec) (in every version listed below).
-
-If you find a test that chevron does not pass, please [report it.](https://github.com/noahmorrison/chevron/issues/new)
-
-### chevron is Python 2 and 3 compatible ###
-
-Python 2.6, 2.7, 3.2, 3.3, 3.4, 3.5, and 3.6 are all tested by travis.
-
-
-
-USAGE
------
-
-Commandline usage: (if installed via pypi)
-```
-usage: chevron [-h] [-v] [-d DATA] [-p PARTIALS_PATH] [-e PARTIALS_EXT]
- [-l DEF_LDEL] [-r DEF_RDEL]
- template
-
-positional arguments:
- template The mustache file
-
-optional arguments:
- -h, --help show this help message and exit
- -v, --version show program's version number and exit
- -d DATA, --data DATA The json data file
- -p PARTIALS_PATH, --path PARTIALS_PATH
- The directory where your partials reside
- -e PARTIALS_EXT, --ext PARTIALS_EXT
- The extension for your mustache partials, 'mustache'
- by default
- -l DEF_LDEL, --left-delimiter DEF_LDEL
- The default left delimiter, "{{" by default.
- -r DEF_RDEL, --right-delimiter DEF_RDEL
- The default right delimiter, "}}" by default.
-```
-
-Python usage with strings
-```python
-import chevron
-
-chevron.render('Hello, {{ mustache }}!', {'mustache': 'World'})
-```
-
-Python usage with file
-```python
-import chevron
-
-with open('file.mustache', 'r') as f:
- chevron.render(f, {'mustache': 'World'})
-```
-
-Python usage with unpacking
-```python
-import chevron
-
-args = {
- 'template': 'Hello, {{ mustache }}!',
-
- 'data': {
- 'mustache': 'World'
- }
-}
-
-chevron.render(**args)
-```
-
-chevron supports partials (via dictionaries)
-```python
-import chevron
-
-args = {
- 'template': 'Hello, {{> thing }}!',
-
- 'partials_dict': {
- 'thing': 'World'
- }
-}
-
-chevron.render(**args)
-```
-
-chevron supports partials (via the filesystem)
-```python
-import chevron
-
-args = {
- 'template': 'Hello, {{> thing }}!',
-
- # defaults to .
- 'partials_path': 'partials/',
-
- # defaults to mustache
- 'partials_ext': 'ms',
-}
-
-# ./partials/thing.ms will be read and rendered
-chevron.render(**args)
-```
-
-chevron supports lambdas
-```python
-import chevron
-
-def first(text, render):
- # return only first occurance of items
- result = render(text)
- return [ x.strip() for x in result.split(" || ") if x.strip() ][0]
-
-def inject_x(text, render):
- # inject data into scope
- return render(text, {'x': 'data'})
-
-args = {
- 'template': 'Hello, {{# first}} {{x}} || {{y}} || {{z}} {{/ first}}! {{# inject_x}} {{x}} {{/ inject_x}}',
-
- 'data': {
- 'y': 'foo',
- 'z': 'bar',
- 'first': first,
- 'inject_x': inject_x
- }
-}
-
-chevron.render(**args)
-```
-
-INSTALL
--------
-
-- with git
-```
-$ git clone https://github.com/noahmorrison/chevron.git
-```
-
-or using submodules
-```
-$ git submodules add https://github.com/noahmorrison/chevron.git
-```
-
-Also available on pypi!
-
-- with pip
-```
-$ pip install chevron
-```
-
-
-
-TODO
----
-
-* get popular
-* have people complain
-* fix those complaints