Skip to content

Instantly share code, notes, and snippets.

@pauliusnorkus
Last active December 21, 2015 19:18
Show Gist options
  • Save pauliusnorkus/6352856 to your computer and use it in GitHub Desktop.
Save pauliusnorkus/6352856 to your computer and use it in GitHub Desktop.
Handlebars Bundle Transform
public class HandlebarsBundleTransform : IBundleTransform
{
public void Process(BundleContext context, BundleResponse response)
{
var builder = new Ember.Handlebars.TemplateBuilder();
var usTextInfo = new CultureInfo("en-US", false).TextInfo;
foreach (var assetFile in response.Files)
{
var path = context.HttpContext.Server.MapPath(assetFile.VirtualFile.VirtualPath.Replace("/", "\\"));
var template = File.ReadAllText(path);
var templateName = Path.GetFileNameWithoutExtension(path).Replace("-", "/");
builder.Register(templateName, template);
}
var content = builder.ToString();
var minifier = new Minifier();
var c = minifier.MinifyJavaScript(content);
if (minifier.ErrorList.Count <= 0)
{
content = c;
}
response.Content = content;
response.ContentType = "text/javascript";
response.Cacheability = HttpCacheability.Public;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment