---
name: "mmark"
section: "1"
platform: "linux"
package: "mmark"
version: "2.2.25+dfsg1-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mmark"
---

# mmark(1)

generate XML, HTML or markdown from mmark markdown documents.

## NAME

mmark - generate XML, HTML or markdown from mmark markdown documents.

## SYNOPSIS

**mmark** \[**OPTIONS**\] \[*FILE...*\]

## DESCRIPTION

**Mmark** is a powerful markdown processor written in Go, geared towards writing IETF documents. It is, however, *also* suited for writing complete books and other technical documentation.

Mmark provides an advanced markdown dialect that processes file(s) to produce internet-drafts in XML RFC 7991 ⟨https://tools.ietf.org/html/rfc7991⟩ format. Mmark can produce xml2rfc (aforementioned RFC 7991), HTML5 and manual pages.

The syntax is detailed at https://mmark.miek.nl/syntax ⟨https://mmark.miek.nl/syntax⟩.

Compared to other markdown variants mmark adds:

- •

  (Extended) Title block to specify authors and IETF specific bits.

- •

  (Special) sections for abstracts, prefaces or notes.

- •

  Including other files with the option to specify line ranges, regular expressions and/or prefixing each line with a custom string.

- •

  Document divisions: front matter, main matter and back matter.

- •

  Captions for code, tables, quotes and subfigures.

- •

  Asides for small notes.

- •

  Figures and Subfigures that allow for grouping images into subfigures as well as giving a single image metadata (a link, attributes, etc.).

- •

  Block Level Attributes that allow to specify attributes, classes and IDs for elements.

- •

  Indices to mark an item (and/or a subitem) to be referenced in the document index.

- •

  Citations and adding XML References (those used by the IETF).

- •

  Cross references: short form of referencing a section in the document.

- •

  Super- and Subscript.

- •

  Callouts in code and text.

- •

  BCP14 (RFC 2119) keyword detection.

## RFC 7991

This is the XML format used by the RFC editor for accepting Internet-Drafts.

## HTML5

The HTML5 renderer outputs HTML.

## MANUAL PAGES

The man renderer outputs nroff that can be viewed via [man(1)](/man/1.md).

## OPTIONS

- **-ast**

  print abstract syntax tree and exit.

- **-css string**

  link to a CSS stylesheet (only used with -html).

- **-fragment**

  don't create a full document.

- **-head string**

  link to HTML to be included in head (only used with -html).

- **-html**

  create HTML output.

- **-man**

  output nroff (manual pages).

- **-unsafe**

  allow includes from anywhere in the filesystem, otherwise they are only allowed *below* the current document.

- **-index**

  generate an index at the end of the document (default true).

- **-bibliography**

  generate a bibliography section after the back matter (default true), this *needs* a `{{backmatter}}` in the document.

- **-version**

  show mmark's version.

## ALSO SEE

RFC 7991 and (maybe) RFC 7749. The main site for Mmark is https://mmark.miek.nl ⟨https://mmark.miek.nl⟩. The syntax used by mmark is explained in the syntax page ⟨https://mmark.miek.nl/post/syntax/⟩.
