HTML output

Fixes #30