I recently started using Mailcoach,
mainly for sending emails to the subscriber list for Chinese Boost.
Mailcoach’s HTML email templating abilities are pretty
basic, but that’s fine. I’m
happy to use simple HTML emails, and found this HTML email
template that
looks like it will do the job nicely.
As the content on Chinese Boost is managed with Hugo, it would be nice to have
Hugo also be responsible for generating HTML email content for each article that
can then just be copy-pasted into Mailcoach for sending to subscribers. Hugo has
an output formats feature that
lets you do exactly that.
The first thing to do is to define an HTML email output format in your Hugo
site’s config, e.g. in config.yaml :
outputFormats:
HTMLemail:
name: HTMLemail
path: email
mediaType: text/html
isHTML: true
outputs:
page:
- HTML
- HTMLemail
- RSS
Then you need to add a new template for the HTML email output format. For
example, if you have a posts/single.html layout file, then create a
posts/single.htmlemail.html layout file next to it.
You can then paste the leemunroe/responsive-html-email-template content there
and modify it to have your content in an HTML email format.
Note that you can put Mailcoach’s template parameters (such as
::unsubscribeUrl:: ) in the Hugo HTML email template, so that Mailcoach will
then render them at sending time.
I would recommend adding a noindex meta tag to avoid duplicate content:
<meta name="robots" content="noindex">
Finally, if you want an easy way to preview the HTML email content, you can link
to it from the main HTML post like this:
{{ with .OutputFormats.Get "HTMLemail" -}}
<a href="{{ .RelPermalink }}" rel="nofollow">
View as HTML email
</a>
{{- end }}
If you don’t want to display that to users, you can use an alternate link in the
head instead:
{{ with .OutputFormats.Get "HTMLemail" -}}
<link rel="alternate,nofollow" href="{{ .RelPermalink }}">
{{- end }}
View post:
Rendering HTML email version of articles with Hugo
|