MarkupEmail

Converting Markup to e-mails

Installation

From rubygems.org

gem install markup-email
# Then use the executables
markup-email [file] [options]

From source (without gems)

git clone https://github.com/Demonstrandum/MarkupEmail.git && cd MarkupEmail
cat *.gemspec # Read through and download all runtime dependencies
ruby -Ilib bin/markup-email [file] [options] # Then you can use the program

Usage

Basic usage: markup-email [markup file] [options]
e.g. markup-email -s email.md -t 'Special E-mail'

Options:

Option Description
-s, --sanitize Sanitizes all html/markdown by removing potentially harmful tags or their attributes
-t, --title The subsequent word/argument will be set as the title
-h, --help, help Brings up the help menu (similar as this)

Your chosen markdown requires these packages accordingly:

  • .markdown, .mdown, .mkdn, .md -- gem install commonmarker
  • .textile -- gem install RedCloth
  • .rdoc -- gem install rdoc -v 3.6.1
  • .org -- gem install org-ruby
  • .creole -- gem install creole
  • .mediawiki, .wiki -- gem install wikicloth
  • .rst -- python3 -m pip install sphinx
  • .asciidoc, .adoc, .asc -- gem install asciidoctor
  • .pod -- Pod::Simple::XHTML comes with Perl >= 5.10.

Delete the example .html in this repo's examples folder and generate it yourself

$ markup-email -s -t veryExampleWow examples/example.md

Title is    : veryExampleWow
Filename is : veryExampleWow.html

Markup/HTML will be sanitized,
(`class=...` attributes and <script> tags will be disalowed).

E-mail it

Then open examples/veryExampleWow.html in your browser and see for yourself, then you can open it in a text-editor, view the source and copy it in to your e-mail editor as HTML source.

In Ruby

Can also be used in Ruby

require 'markup_email'

file = ... # Markdup file
title = ... # Title of the page

markup = MarkupEmail::Convert.new(file, title, sanitize)
puts markup.content # Will print the pure HTML

markup.write "#{file.split('.')[0..-2].join('.')}-converted.html" # Makes a new file
# If `file` was equal to "hello.there.md"
# then the new file from `markup.write()` would be called
# "hello.there-converted.html"

If this is not sufficient, perhaps see the rubydoc.info for autogenerated documentation.