Handlebars

Handlebars is a fantastic templating engine which is available for .NET. It’s similar to Mustache, which I tend to prefer, but Handlebars has more features that can be very useful.

This is a basic example showing how easy it is to apply a template.

// <package id="Handlebars.Net" version="1.7.1" targetFramework="net40" />
 
// {{ "{{" }}{ triple-stash to avoid encoding }}}
 
using System;
using HandlebarsDotNet;
 
class Program {
    static void Main(string[] args) {
        string source = 
@"
{{ "{{" }}title}}
Hello {{ "{{" }}person.name}}, I see that you are {{ "{{" }}person.age}} years old.
You have the following cars:
{{ "{{" }}#each cars}}
    {{ "{{" }}year}} {{ "{{" }}make}} {{ "{{" }}model}} {{ "{{" }}#if color}}(Color={{ "{{" }}color}}){{ "{{" }}/if}}
{{ "{{" }}/each}}
";
 
        var template = Handlebars.Compile(source);
 
        var data = new {
            title = "My Data Object",
            person = new { name = "Billy", age = 34 },
            cars = new object[] {
                new { year = 2015, make = "Ford", model = "Mustang", color = "Red" },
                new { year = 2014, make = "Chevy", model = "Corvette" },
                new { year = 2013, make = "Dodge", model = "Aries", color = "Yellow" }
            }
        };
        var result = template(data);
 
        Console.WriteLine(result);
    }
}
 
/****** OUTPUT *******
 
My Data Object
Hello Billy, I see that you are 34 years old.
You have the following cars:
    2015 Ford Mustang (Color=Red)
    2014 Chevy Corvette
    2013 Dodge Aries (Color=Yellow)
 
******* OUTPUT ******/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s