Markdown to AsciiDoc Converter

Moving content from Markdown into an AsciiDoc toolchain? Paste Markdown and get AsciiDoc back: headings become equals-signs, code fences become listing blocks, links and images take AsciiDoc macro syntax, and lists and quotes are translated. It updates as you type and runs entirely locally.

How to use the Markdown to AsciiDoc Converter

Type or paste Markdown on the left and the AsciiDoc equivalent appears on the right as you go. Press Copy AsciiDoc to put the result on your clipboard. The converter handles the constructs you reach for most: ATX headings (# through ######) become AsciiDoc's = levels, bold and italic are rewritten to AsciiDoc's * and _, and inline code uses backticks the same way.

Block elements are translated too. Fenced code blocks become [source] listing blocks delimited by ----, with the language carried over when you specify one. Links turn into the url[text] macro and images into image::path[alt]. Unordered and ordered lists, blockquotes, and horizontal rules all get their AsciiDoc forms. Plain paragraphs pass through unchanged, since prose is largely compatible between the two formats.

Everything runs in your browser and updates live, so you can paste a long document and nothing is uploaded anywhere.

Markdown and AsciiDoc, side by side

Markdown and AsciiDoc are both lightweight markup languages — plain text that turns into formatted documents — but they were designed for different scales. Markdown aims at simplicity for web writing: comments, READMEs, and short documents. AsciiDoc aims at full technical publishing, with native support for cross-references, includes, admonitions, tables, footnotes, and book-length structure. When a project graduates from a README to a documentation site built with Antora or DocBook, converting existing Markdown to AsciiDoc is a common first step, and most of the everyday syntax maps cleanly.

The differences are in the punctuation. Headings in Markdown use a leading # per level; AsciiDoc uses a leading =, so a Markdown ## becomes ==. Emphasis is close but not identical — both use asterisks and underscores, though AsciiDoc treats single * as bold and single _ as italic, which is why a careful converter normalizes Markdown's **bold** and _italic_ rather than copying them verbatim. The biggest structural divergence is in links and images: where Markdown writes [text](url) and ![alt](src), AsciiDoc uses macros — url[text] for links and the block macro image::src[alt] for images — a different ordering that is easy to get wrong by hand.

Code blocks show the philosophy difference clearly. A Markdown fenced block is just three backticks and an optional language; AsciiDoc separates the metadata from the delimiter, writing [source,js] on one line and fencing the code with ----. This verbosity buys AsciiDoc more power — you can add line numbers, callouts, and highlighting attributes — but it means a mechanical translation has to restructure rather than swap characters. A converter like this one gets you most of the way for typical documents; very advanced Markdown extensions (footnotes, definition lists, embedded HTML) may need a manual pass, because they either differ subtly or have no one-to-one AsciiDoc equivalent. For the common 90% — headings, formatting, lists, quotes, links, images, and code — automatic conversion saves a great deal of tedious editing.

Common use cases

  • Migrating docs. Move a README or wiki from Markdown into an AsciiDoc-based toolchain like Antora or Asciidoctor.
  • Mixed repositories. Convert contributed Markdown to match a project that standardizes on AsciiDoc.
  • Learning AsciiDoc. See how familiar Markdown maps to AsciiDoc syntax as you write.
  • Publishing pipelines. Prepare content for DocBook or PDF output that expects AsciiDoc input.

Frequently asked questions

Which Markdown features are converted?

Headings, bold, italic, inline code, fenced code blocks with language, links, images, ordered and unordered lists, blockquotes, and horizontal rules. Plain paragraphs pass through as-is.

Why do links look reversed?

AsciiDoc puts the URL before the text — url[text] — whereas Markdown puts the text first. Images use the image::src[alt] macro. The converter reorders them for you.

Does it handle tables or footnotes?

This converter focuses on the common block and inline elements. AsciiDoc tables and footnotes use markedly different syntax, so complex documents may need a manual touch-up after conversion.

Is my content uploaded anywhere?

No. The conversion happens entirely in your browser with JavaScript, so you can paste private documents safely and it works offline.