Comparing version 1.7.0 to 2.0.0
@@ -0,1 +1,5 @@ | ||
# 2.0.0 Renderable Entities | ||
- Introduced `.render`, `.renderString` methods | ||
# 1.6.0 `JSON-LD` | ||
@@ -2,0 +6,0 @@ |
@@ -14,3 +14,3 @@ { | ||
}, | ||
"version": "1.7.0", | ||
"version": "2.0.0", | ||
"licenses": "MIT", | ||
@@ -17,0 +17,0 @@ "keywords": [ |
@@ -151,2 +151,4 @@ ![campaign.png][9] ![ga](https://ga-beacon.appspot.com/UA-35043128-6/campaign/readme?pixel) | ||
You can also use `.render` or `.renderString` as the equivalents to both of these methods that will only render the emails as HTML. This is useful for debugging and to render emails identically to what your customers see, but handle the rendering logic yourself. | ||
### `subject` | ||
@@ -153,0 +155,0 @@ |
@@ -10,3 +10,3 @@ 'use strict'; | ||
function renderer (render, template, model, done) { | ||
function renderer (render, template, model, send, done) { | ||
@@ -19,3 +19,7 @@ function updateModel (html, next) { | ||
function providerSend (next) { | ||
options.provider.send(model, next); | ||
if (send) { | ||
options.provider.send(model, next); | ||
} else { | ||
next(); | ||
} | ||
} | ||
@@ -35,3 +39,9 @@ | ||
}, function (err, results) { | ||
done(err, results ? results.response : results); | ||
if (err) { | ||
done(err); | ||
} else if (send) { | ||
done(null, results ? results.response : results); | ||
} else { | ||
done(null, model.html, model); | ||
} | ||
}); | ||
@@ -42,6 +52,12 @@ } | ||
send: function (file, model, done) { | ||
renderer(templateService.render, file, model, done); | ||
renderer(templateService.render, file, model, true, done); | ||
}, | ||
sendString: function (template, model, done) { | ||
renderer(templateService.renderString, template, model, done); | ||
renderer(templateService.renderString, template, model, true, done); | ||
}, | ||
render: function (file, model, done) { | ||
renderer(templateService.render, file, model, false, done); | ||
}, | ||
renderString: function (template, model, done) { | ||
renderer(templateService.renderString, template, model, false, done); | ||
} | ||
@@ -48,0 +64,0 @@ }; |
'use strict'; | ||
var _ = require('lodash'); | ||
var htmlmd = require('html-md'); | ||
@@ -17,8 +18,11 @@ var marked = require('marked'); | ||
delete model.social; | ||
delete model.styles; | ||
delete model.html; | ||
delete model.body; | ||
delete model.generated; | ||
var tj = model.toJSON; // preserve | ||
model.toJSON = toJSON; | ||
if (model._header) { | ||
model._header.toJSON = toImageJSON; | ||
} | ||
if (model.images) { | ||
model.images.forEach(jsonImage); | ||
} | ||
var md = htmlmd(body); | ||
@@ -29,5 +33,23 @@ var term = marked(md, options); | ||
console.log(term); | ||
model.toJSON = tj; // restore | ||
done(); | ||
function jsonImage (img) { | ||
img.toJSON = toImageJSON; | ||
} | ||
function toJSON () { | ||
return _.pluck(this, Object.keys(this).filter(function (key) { | ||
return ['social', 'styles', 'html', 'body', 'generated'].indexOf(key) === -1; | ||
})); | ||
} | ||
function toImageJSON () { | ||
return _.pluck(this, Object.keys(this).filter(function (key) { | ||
return key !== 'data'; | ||
})); | ||
} | ||
} | ||
}; | ||
}; |
@@ -29,3 +29,3 @@ 'use strict'; | ||
} | ||
options.templateEngine.render(options.layout, layoutModel, done); | ||
options.templateEngine.render(model.layout || options.layout, layoutModel, done); | ||
}; | ||
@@ -32,0 +32,0 @@ } |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
48398
479
424