By default, Pelican produces HTML (not XHTML) from Markdown. For instance, markup  will produce <img src="images/bird.jpg"> with a non-closed tag, breaking XHTML.
Is there a way to convince Pelican to produce XHTML? Or must I run Tidy on output/* ?
Pelican uses Python-Markdown as its Markdown parser, and Python-Markdown can output XHTML. In fact, that is its default, which copies the reference implementation (markdown.pl). Pelican overrides that default with
HTML5, which, of course, is not valid XHTML.Any keywords set in Pelican's
MARKDOWNsetting get passed directly to theMarkdownclass. Therefore, simply define the output_format in your config file:Full disclosure: I am a member of the Python-Markdown development team.