Generate HTML email from your RSS feeds
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
fixtures
output
src
tests
webtask
.eslintrc.json Refactoring Feed Apr 14, 2018
.gitignore
.npmignore Updating options Jun 14, 2018
.travis.yml
changelog.md
cli.js Updating cli Apr 15, 2018
config.example.json
contributing.md
package-lock.json
package.json 0.6.0 May 26, 2018
readme.md Adding readme updates Jun 20, 2018

readme.md

rss-to-email

Generate HTML emails and mjml templates from one or more RSS feeds.

Note: This project is pre-version 1.0.0, so breaking changes may occur. Use at your own risk or lock down to a specific version using NPM.

Travis Build Status Coverage Status npm GitHub stars License

                                _                                   _ _ 
             _ __ ___ ___      | |_ ___         ___ _ __ ___   __ _(_) |
            | '__/ __/ __|_____| __/ _ \ _____ / _ \ '_ ` _ \ / _` | | |
            | |  \__ \__ \_____| || (_) |_____|  __/ | | | | | (_| | | |
            |_|  |___/___/      \__\___/       \___|_| |_| |_|\__,_|_|_|
                                                                        

rss-to-email example

Table of Contents

Usage

Node

The recommended way to use this package is as an npm package. To install and save it to your project's dependencies, run:

npm install rss-to-email --save

After installing, call the RssToEmail factory with a config object. Use the resulting rssToEmail object to get emails in mjml or html formats:

const RssToEmail = require('rss-to-email');
const config = {
  // See #Configuration section of the docs below
};
const rssToEmail = RssToEmail(config);

rssToEmail.getEmail('html').then((email) => {
  console.log(email); // The HTML version of your email
});

rssToEmail.getEmail('mjml').then((email) => {
 console.log(email); // The MJML version of your email
});

Command Line

You can install this package globally and run it as a command line tool as well. First install it:

npm install -g rss-to-email

Then run the tool:

rss-to-email <config-file-path> <output-folder-path>

The path should be relative to your current directory. For example, if your config file is at ./config.json and you want to output the resulting files to a directory ./output, you would run:

rss-to-email ./config.json ./output

Browser

You can access a limited set of functionality from this library in your browser at email.pcto.co. Because mjml pulled support for browser-side usage, you can't use this library in pure client-side applications, but we have deployed this project as a serverless endpoint using Auth0's Webtasks and hosted a simple frontend on Github Pages to let non-technical people see how the software works and access some of its functionality.

Configuration

For an example config file, see config.example.json.

  • accentColor: A hex or html-safe color code.
  • filename: The base name of the output files to generate (do not include extensions).
  • header: Configuration for the header section of the email:
    • banner: (optional) An image url for the banner at the top of the email.
    • link: A link for the header image or text.
    • title: Shown if the banner is not set or as an alt tag on the image.
  • intro: The first line of the email. Can use HTML or plain text.
  • feeds: An array of RSS feeds you'd like to include. Each must have a url, but can also have:
    • description: A short custom feed description. Will use the RSS feed's embedded one by default.
    • publishedSince: Filter out posts published before this date.
    • title: A custom feed title. Will use the RSS feed's embedded one by default.
    • url: The url to the RSS feed.
  • outro: The last line of the email. Can use HTML or plain text.
  • templateUrl: (optional) A handlebars/mjml template. Defaults to this file.

Contributing

All patches, fixes, and ideas welcome! Please read contributing.md for furthers details.

License

License