mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-24 23:48:13 -05:00
- All var declarations are now const or let as per ES6 - All comma-separated lists / chained declarations are now one declaration per line - This is for clarity/readability but also made running the var-to-const/let switch smoother - ESLint rules updated to match How this was done: - npm install -g jscodeshift - git clone https://github.com/cpojer/js-codemod.git - git clone git@github.com:TryGhost/Ghost.git shallow-ghost - cd shallow-ghost - jscodeshift -t ../js-codemod/transforms/unchain-variables.js . -v=2 - jscodeshift -t ../js-codemod/transforms/no-vars.js . -v=2 - yarn - yarn test - yarn lint / fix various lint errors (almost all indent) by opening files and saving in vscode - grunt test-regression - sorted!
32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
const _ = require('lodash').runInContext();
|
|
const fs = require('fs-extra');
|
|
const path = require('path');
|
|
const htmlToText = require('html-to-text');
|
|
const urlUtils = require('../../lib/url-utils');
|
|
const templatesDir = path.resolve(__dirname, '..', 'mail', 'templates');
|
|
|
|
_.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
|
|
|
|
exports.generateContent = function generateContent(options) {
|
|
const defaults = {
|
|
siteUrl: urlUtils.urlFor('home', true)
|
|
};
|
|
|
|
const data = _.defaults(defaults, options.data);
|
|
|
|
// read the proper email body template
|
|
return fs.readFile(path.join(templatesDir, options.template + '.html'), 'utf8')
|
|
.then(function (content) {
|
|
// insert user-specific data into the email
|
|
const compiled = _.template(content);
|
|
const htmlContent = compiled(data);
|
|
|
|
// generate a plain-text version of the same email
|
|
const textContent = htmlToText.fromString(htmlContent);
|
|
|
|
return {
|
|
html: htmlContent,
|
|
text: textContent
|
|
};
|
|
});
|
|
};
|