Avatar
Hund

# emerge life

Converting Markdown to HTML

To convert Markdown-documents to HMTL-documents I use Markdown2, which is a complete implementation of Markdown in Python.

It’s available via pip:

$ pip install markdown2 --user

To convert a document you simply use the command:

$ markdown2 input_file.md > output_file.html

But if you use tables in your document it will not render them correctly unless you add the flag -x tables:

$ markdown2 input.md > output.html -x tables

The default styling of tables is bad as you can see in this before and after picture:

The styling I added was this:

<style>
	table { border-collapse: collapse; width:100%; }
	td, th { border: 1px solid #ddd; padding: 8px; }
	tr:nth-child(even){background-color: #f2f2f2;}
	tr:hover {background-color: #ddd;}
	th { padding-top: 12px; padding-bottom: 12px; background-color: #ddd; }
</style>

But manually adding that to every document with tables isn’t going to be very fun, so I wrote a simple script called md2html.sh to do it for me:

#!/bin/sh
markdown2 $1 > $2 -x tables
sed -i '1 i\<style>table { border-collapse: collapse; width:100%; }	td, th { border: 1px solid #ddd; padding: 8px; } tr:nth-child(even){background-color: #f2f2f2;}	tr:hover {background-color: #ddd;} th { padding-top: 12px; padding-bottom: 12px; background-color: #ddd; }</style>' $2

And to use it:

$ md2html.py input.md output.html

If I want to convert it to a PDF-document I just print it to a PDF-document via my web browser, which saves me from installing additional packages for something that I rarely ever use anyway.

Feedback

I don't have a commenting system on my blog since there's no good solutions that works without JavaScript, is user friendly and respects both the users freedom and privacy. So for now, all feedback and hellos can be done via either e-mail, XMPP or Mastodon.