2.1.1 • Published 10 years ago

tpl-emails v2.1.1

Weekly downloads
42
License
Apache 2
Repository
github
Last release
10 years ago

tpl-emails

Build Status NPM version

Generate HTML emails using templating engine (nunjuncks by default). Inspired by andrewrk/swig-email-templates.

Features

  • Uses nunjucks, which supports Django-inspired template inheritance. You can provide your render method.
  • Uses juice, which takes an HTML file and inlines all the <link rel="stylesheet">s and the <style>s.
  • URL rewrite support - you can provide a urlRewrite option to rewrite your links.
  • Text emails - for a template name passed into render(), if a file exists with the same name but a .txt extension it will be rendered separately. If the .txt file does not exist, html-to-text will auto-generate a text version of the html file. This can be disabled with the option text: false.

Usage

var path = require('path');
var TplEmails = require("tpl-emails");

var emails = new TplEmails({
    root: path.join(__dirname, "templates")
});

emails.render('meatball-sandwich.html', { context: { meatballCount: 9001 } }, function(err, html, text) {
    // send html/text email
});

Use your own templating engine

For example to use underscore/lodash templating engine:

var fs = require("fs");
var _ = require("lodash");
var TplEmails = require("tpl-emails");

var emails = new TplEmails({
    render: function(tplname, context, callback) {
        var content = fs.readFileSync("templates/"+tplname);
        callback(null, _.template(content, context));
    }
});

emails.render('meatball-sandwich.html', { context: { meatballCount: 9001 } }, function(err, html, text) {
    // send html/text email
});