This repository contains a HTML email template for Frontiers Fortnightly and a
script (render.py
) to render the template. The resultant file (if using the
genmime
command implemented in render.py
) is the source of an email which
is complete except for the To:
field. It is intended that this email source
will be loaded into an email client and sent to members of the Maker Club by
whoever ends up distributing Frontiers Fortnightly.
Privacy note: Whoever distributes the email needs to remember to put all recipients in the BCC field (if using a desktop client) or to send the email with only individual recipients in to To: field (i.e. so that it always looks like you're the only recipient). It's easy to forget to do this, and very annoying when your email gets leaked (and possibly spammed) because someone pasted a bunch of addresses into the To: field in Outlook when doing a bulk mailing.
To run the script, you will first need to install its dependencies, listed in
requirements.txt
. The easiest way to do this is using pip and
virtualenv. For
instance, on Ubuntu you might do:
$ sudo apt-get install python3-virtualenv
$ cd <path to this repository>
$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt
...some junk, possibly dependency errors which you'll need to Google to
resolve...
$ ./render.py --help # Shows usage of rendering script
$ ./render.py --dest to-send.eml genmime issues/issue-7.md # Render issue 7
You might also need to install some extra packages like lxml
for the install
to work correctly; Googling any errors that come up during pip install
will
yield the answers you seek. In particular, you might need to sudo apt-get build-dep python3-lxml
to install the
dependencies of Python's lxml
library, and
sudo apt-get install python3-dev
to install Python-relevant header files
needed by most large libraries on PyPI.
The source issues themselves are stored in Markdown format in the issues/
directory. Remember to follow the existing issues closely when structuring new
issues: issues should always begin with a metadata block containing an "Issue:"
key with the issue number; the issue block should be followed by a blank line,
then the preamble; stories should follow afterwards, with each story beginning
with a level-one header in the form # <heading>
and end with a [Learn more](...)
URL.
To resolve possible issues with generated emails, remember to preview them in your web browser before sending, and possibly send out some test emails to yourself to assure yourself that email clients also render the email correctly.