Skip to content
100% local

AsciiDoc to Markdown converter

Convert AsciiDoc syntax to Markdown, and back again, right in your browser.

Input
Output

AsciiDoc to Markdown converter

Paste AsciiDoc — a README, a documentation page, a chunk exported from a wiki — and this tool rewrites it as Markdown. Headings (=, ==, up to ======) become # through ######. Bold (*word*) becomes **word**, while italic (_word_) and inline code (`word`) already share the same syntax in both formats and pass through untouched. link:url[text] and a bare https://url[text] become [text](url), image::url[alt] becomes ![alt](url), a [source,language] block wrapped in ---- becomes a fenced code block, and a |=== table becomes a Markdown pipe table with a header separator row. NOTE, TIP, WARNING, IMPORTANT and CAUTION admonitions become blockquotes or GitHub-style alerts, and the whole thing runs in reverse too, from Markdown back to AsciiDoc, via the direction option.

The other options shape the details: heading style chooses ATX (#) or Setext (an underline of = or -, levels one and two only — deeper headings fall back to ATX); admonition format chooses a plain blockquote or a GitHub alert block; bullet style picks the dash or asterisk for unordered lists; and keeping attributes as front matter turns AsciiDoc's :name: value lines into a YAML block instead of dropping them, mirrored in the reverse direction too.

This is a lightweight, pattern-based converter, not a full parser, so it works best on the constructs above. Ordered lists always render as "1." or "." — renderers number sequentially regardless of the marker's own digits, so numbering is unaffected. Windows and Unix line endings are handled the same way, and the tally reports lines in, lines out and elements converted.

Everything runs locally in your browser as you type — nothing you paste is uploaded, logged or sent anywhere. Copy the result, download it as a .txt file, or send it back into the input for another pass.

FAQ

Does this handle both directions — AsciiDoc to Markdown and Markdown to AsciiDoc?
Yes. The direction option switches which format is read and which is produced, and swapping it also moves the current output back into the input, so you can convert one way and then check the round trip.
Why do ordered lists always come out as "1." or "."?
Both Markdown and AsciiDoc renderers number ordered lists sequentially no matter what digit or number of dots sits on each source line, so writing every marker the same way still produces correctly numbered output without the converter having to track counters itself.
What happens to AsciiDoc constructs this tool does not recognize?
Anything outside the supported set — headings, bold, links, images, listing blocks, one-row-per-line tables, admonitions, lists and :name: value attributes — is left as plain text rather than guessed at, so the output stays predictable instead of silently mangling unfamiliar markup.
Can it convert nested or multi-line tables?
It supports the common compact form where each table row sits on its own line between |=== delimiters (AsciiDoc) or as a standard pipe table with a header separator row (Markdown). AsciiDoc tables written with one cell per line and blank-line separators are not reconstructed.
Is my document uploaded anywhere?
No. The conversion runs entirely in your browser — nothing you paste ever leaves your device.