Command-Line Interface
Multimark includes a command-line tool for quick Markdown conversions without writing Python code. It reads from a file or stdin and writes the rendered output to stdout or a file.
Basic Usage
The simplest invocation converts Markdown to HTML:
echo '# Hello **world**' | multimark<h1>Hello <strong>world</strong></h1>You can also pass a filename directly:
multimark README.mdChoosing an Output Format
Use the -t / --to flag to select the output format. The available formats are html (the default), latex, man, commonmark, and xml.
echo '# Hello' | multimark --to latex\section{Hello}echo '**bold** and *italic*' | multimark --to xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document SYSTEM "CommonMark.dtd">
<document xmlns="http://commonmark.org/xml/1.0">
<paragraph>
<strong>
<text xml:space="preserve">bold</text>
</strong>
<text xml:space="preserve"> and </text>
<emph>
<text xml:space="preserve">italic</text>
</emph>
</paragraph>
</document>Writing to a File
Use -o / --output to write results to a file instead of stdout:
multimark README.md --to html -o README.htmlEnabling GFM Extensions
GFM extensions are enabled with the -e / --extension flag. It can be repeated to enable multiple extensions at once.
echo '| A | B |\n|---|---|\n| 1 | 2 |' | multimark -e tableThe available extensions are autolink, strikethrough, table, tagfilter, and tasklist.
multimark doc.md -e table -e strikethrough -e autolinkRendering Options
Several flags control how the Markdown is parsed and rendered:
| Flag | Effect |
|---|---|
--smart |
Convert straight quotes to curly, -- to en-dash, --- to em-dash, ... to ellipsis |
--unsafe |
Allow raw HTML and potentially dangerous URLs to pass through |
--hardbreaks |
Render soft line breaks as hard breaks |
--sourcepos |
Add source position attributes (html and xml only) |
--footnotes |
Enable footnote syntax |
These can be combined freely:
echo '"Hello" -- world...' | multimark --smart<p>\u201cHello\u201d \u2013 world\u2026</p>echo '<div>raw</div>' | multimark --unsafe<div>raw</div>Reading from stdin
When no file argument is provided, multimark reads from stdin. This makes it easy to use in shell pipelines:
curl -s https://example.com/README.md | multimark --to html > output.htmlcat doc.md | multimark --smart --to latex | tee output.texVersion
Check the installed version with:
multimark --versionFull Help
multimark --helpUsage: multimark [OPTIONS] [FILE]
Convert CommonMark/GFM Markdown to various output formats.
Reads Markdown from FILE (or stdin if omitted) and writes the converted
output to stdout or the file specified by --output.
Options:
-t, --to [html|latex|man|commonmark|xml]
Output format.
-o, --output FILENAME Output file (stdout if omitted).
-e, --extension [autolink|strikethrough|table|tagfilter|tasklist]
Enable a GFM extension (repeatable).
--smart Use smart punctuation.
--unsafe Allow raw HTML and dangerous URLs.
--hardbreaks Render softbreaks as hard line breaks.
--sourcepos Include source position attributes (html/xml
only).
--footnotes Enable footnote parsing.
--version Show the version and exit.
--help Show this message and exit.