Created
April 26, 2017 11:48
-
-
Save albertorestifo/6459ed313427d1cc79d226054e731595 to your computer and use it in GitHub Desktop.
Revisions
-
albertorestifo created this gist
Apr 26, 2017 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,52 @@ const fs = require('fs'); const Path = require('path'); const React = require('react'); const ReactDOMServer = require('react-dom/server'); const Email = require('../lib/Email').default; const STYLE_TAG = '%STYLE%'; const CONTENT_TAG = '%CONTENT%'; /** * Get the file from a relative path * @param {String} relativePath * @return {Promise.<string>} */ function getFile(relativePath) { return new Promise((resolve, reject) => { const path = Path.join(__dirname, relativePath); return fs.readFile(path, { encoding: 'utf8' }, (err, file) => { if (err) return reject(err); return resolve(file); }) }); } /** * Renders the React app with the passed data. * Returns a promise that resolves to the full email HTML. * @param {Object} data * @return {Promise.<String>} */ function createEmail(data) { return Promise.all([ getFile('../src/inlined.css'), getFile('./email.html'), ]) .then(([style, template]) => { const emailElement = React.createElement(Email, { data }); const content = ReactDOMServer.renderToStaticMarkup(emailElement); // Replace the template tags with the content let emailHTML = template; emailHTML = emailHTML.replace(CONTENT_TAG, content); emailHTML = emailHTML.replace(STYLE_TAG, style); return emailHTML; }); } module.exports = createEmail; This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,15 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <style> %STYLE% </style> </head> <body style="width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;"> %CONTENT% </body> </html>