Ghost/core/server/mail/utils.js
kirrg001 0ae0a0b490 🎨 change how we get and set config
refs #6982
- a replace for all config usages
- always use config.get or config.set
- this a pure replacement, no logic has changed

[ci skip]
2016-09-20 15:59:34 +01:00

41 lines
1.2 KiB
JavaScript

var _ = require('lodash').runInContext(),
fs = require('fs'),
Promise = require('bluebird'),
path = require('path'),
htmlToText = require('html-to-text'),
config = require('../config'),
templatesDir = path.resolve(__dirname, '..', 'mail', 'templates');
_.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
exports.generateContent = function generateContent(options) {
var defaults,
data;
defaults = {
siteUrl: config.get('forceAdminSSL') ? (config.get('urlSSL') || config.get('url')) : config.get('url')
};
data = _.defaults(defaults, options.data);
// read the proper email body template
return Promise.promisify(fs.readFile)(path.join(templatesDir, options.template + '.html'), 'utf8')
.then(function (content) {
var compiled,
htmlContent,
textContent;
// insert user-specific data into the email
compiled = _.template(content);
htmlContent = compiled(data);
// generate a plain-text version of the same email
textContent = htmlToText.fromString(htmlContent);
return {
html: htmlContent,
text: textContent
};
});
};