<commit_before>GRMustache
==========

GRMustache is an Objective-C implementation of the [Mustache](http://mustache.github.com/) logic-less template engine.

The Mustache syntax: http://mustache.github.com/mustache.5.html (not wrong, but somewhat outdated).

A list of Mustache implementations in other languages: http://mustache.github.com/

Breaking news on Twitter: http://twitter.com/GRMustache


What you get
------------

**An ARC-compatible static library**, that will run on your computers, devices, simulators.

**MacOS 10.6+, iPhoneOS 3.0, iOS 4.0+ support**

**Compatibility with other Mustache implementations**:

- [Mustache specification v1.1.2](https://github.com/mustache/spec) conformance
- a touch of [Handlebars.js](https://github.com/wycats/handlebars.js)
    
**Compatibility with previous GRMustache versions**: update GRMustache, enjoy performance improvements and bugfixes, and don't change a line of your code.

**Number and date formatting.** No magic here, you could have implemented that yourself. Anyway, this is handy, and built-in.

You'll learn how to embed GRMustache in your XCode project in [guides/embedding.md](GRMustache/blob/master/guides/embedding.md).


Usage
-----

GRMustache rendering is the combination of a template string and of an object that will provide the data.

    #import "GRMustache.h"
    
    NSString *templateString = @"Hello {{name}}!";
    Person *arthur = [Person personWithName:@"Arthur"];
    
    // Returns "Hello Arthur!"
    [GRMustacheTemplate renderObject:arthur
                          fromString:templateString
                               error:NULL];

Speaking of templates, GRMustache eats many kinds of them: raw strings, files, bundle resources. For more information, check [guides/templates.md](GRMustache/blob/master/guides/templates.md).

Regarding the data objects, GRMustache fetches values with the standard Key-Value Coding `valueForKey:` method. Check [guides/runtime.md](GRMustache/blob/master/guides/runtime.md).


Mustache flavors
----------------

GRMustache supports two Mustache flavors : the genuine Mustache, and a bit a [Handlebars.js](https://github.com/wycats/handlebars.js).

The main difference lies in the syntax of key paths: genuine Mustache reads `{{foo.bar.baz}}`, while Handlebars reads `{{foo/bar/baz}}` and even `{{../foo/bar/baz}}`.

If your templates use such compound key paths, you should read [guides/flavors.md](GRMustache/blob/master/guides/flavors.md).


Features worth noting
---------------------

### Lambda sections

Mustache has "lambda sections". These are sections that allow you to execute custom code, and implement nifty features like caching, filtering, whatever, on portions of your templates.

Be sure to read GRMustache's take on the subject: [guides/runtime/helpers.md](GRMustache/blob/master/guides/runtime/helpers.md).

### Number and Date formatting

GRMustache ships with a few helper classes. One allows you to format all numbers in a section with a `NSNumberFormatter` instance, the other does the same, for dates.

They are covered by [guides/number_formatting.md](GRMustache/blob/master/guides/number_formatting.md) and  [guides/date_formatting.md](GRMustache/blob/master/guides/date_formatting.md)

Forking
-------

Please fork. You'll learn useful information in [guides/forking.md](GRMustache/blob/master/guides/forking.md).<commit_msg>wording<commit_after>GRMustache
==========

GRMustache is an Objective-C implementation of the [Mustache](http://mustache.github.com/) logic-less template engine.

The Mustache syntax: http://mustache.github.com/mustache.5.html (not wrong, but somewhat outdated).

A list of Mustache implementations in other languages: http://mustache.github.com/

Breaking news on Twitter: http://twitter.com/GRMustache


What you get
------------

**An ARC-compatible static library**, that will run on your computers, devices, simulators.

**MacOS 10.6+, iPhoneOS 3.0, iOS 4.0+ support**

**Compatibility with other Mustache implementations**:

- [Mustache specification v1.1.2](https://github.com/mustache/spec) conformance
- a touch of [Handlebars.js](https://github.com/wycats/handlebars.js)
    
**Compatibility with previous GRMustache versions**: update GRMustache, enjoy performance improvements and bugfixes, and don't change a line of your code.

**Number and date formatting.** Handy, and built-in.

**Guides**: GRMustache online documentation is provided as guides. The first one tells you how to embed GRMustache in your XCode project: [guides/embedding.md](GRMustache/blob/master/guides/embedding.md).


Usage
-----

GRMustache rendering is the combination of a template string and of an object that will provide the data.

    #import "GRMustache.h"
    
    NSString *templateString = @"Hello {{name}}!";
    Person *arthur = [Person personWithName:@"Arthur"];
    
    // Returns "Hello Arthur!"
    [GRMustacheTemplate renderObject:arthur
                          fromString:templateString
                               error:NULL];

Speaking of templates, GRMustache eats many kinds of them: raw strings, files, bundle resources. For more information, check [guides/templates.md](GRMustache/blob/master/guides/templates.md).

Regarding the data objects, GRMustache fetches values with the standard Key-Value Coding `valueForKey:` method. Check [guides/runtime.md](GRMustache/blob/master/guides/runtime.md).

Mustache flavors
----------------

GRMustache supports two Mustache flavors : the genuine Mustache, and a bit a [Handlebars.js](https://github.com/wycats/handlebars.js).

The main difference lies in the syntax of key paths: genuine Mustache reads `{{foo.bar.baz}}`, while Handlebars reads `{{foo/bar/baz}}` and even `{{../foo/bar/baz}}`.

If your templates use such compound key paths, you should read [guides/flavors.md](GRMustache/blob/master/guides/flavors.md).


Features worth noting
---------------------

### Lambda sections

Mustache has "lambda sections". These are sections that allow you to execute custom code, and implement nifty features like caching, filtering, whatever, on portions of your templates.

Be sure to read GRMustache's take on the subject: [guides/runtime/helpers.md](GRMustache/blob/master/guides/runtime/helpers.md).

### Number and Date formatting

GRMustache ships with a few helper classes. One allows you to format all numbers in a section with a `NSNumberFormatter` instance, the other does the same, for dates.

They are covered by [guides/number_formatting.md](GRMustache/blob/master/guides/number_formatting.md) and  [guides/date_formatting.md](GRMustache/blob/master/guides/date_formatting.md)

Forking
-------

Please fork. You'll learn useful information in [guides/forking.md](GRMustache/blob/master/guides/forking.md).
{'fraction_non_alphanumeric': 0.11852619118082273, 'fraction_numerical': 0.0032554010062148565, 'mean_word_length': 4.014094955489615, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, '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': '4245727', 'n_tokens_mistral': 1969, 'n_tokens_neox': 1877, 'n_words': 657}