Skip to content

zeppelin/handlebars-serializer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Handlebars Serializer Build Status

Serialize Handlebars AST into template string.

Useful when you want to parse a Handlebars template into an Abstract Syntax Tree (AST), add/remove/modify nodes, then it serialize back to Handlebars template.

Also includes a Transformer that could be used as a base class for performing such transformations. The following example uses marked to compile all text content into Markdown:

// markdown-transformer.js
import Transformer from 'handlebars-serializer/transformer';

export default class MarkdownTransformer extends Transformer {
  content(content) {
    var string = content.string;

    // Don't parse whitespace
    if (!string.match(/[^\s]/g)) {
      return content;
    }

    content.string = marked(string);

    return content;
  }
}
// app.js
import Handlebars from 'handlebars';
import MarkdownTransformer from './markdown-transformer';

var template = '{{#if shouldSayHello}} Hello **World** {{/if}}';
var ast = Handlebars.parse(template);
var mdTemplate = new MarkdownTransformer().accept(ast);

console.log(mdTemplate); // {{#if shouldSayHello}} Hello <strong>World</strong> {{/if}}

License

Copyright (c) 2014 Gabor Babicz (MIT License)

About

Serialize Handlebars AST into template string

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors