Converter Tools
Markdown to AsciiDoc Converter
Convert Markdown to AsciiDoc and back in your browser. Headings, bold, italic, links, tables, code blocks, lists, and images, with a syntax cheat sheet.
Rewrite CommonMark or GitHub-Flavored Markdown into AsciiDoc that pastes correctly into an .adoc file, Antora module, or Asciidoctor page.
Headings become = through ======, **bold** becomes *bold*, *italic* becomes _italic_, [label](url) becomes url[label], GFM tables become |=== fenced tables, fenced code blocks become [source,lang] / ---- listings, and image blocks become image::url[alt].
Syntax mapping
Every construct, side by side.
| Construct | Markdown | AsciiDoc |
|---|---|---|
| Bold | **bold** | *bold* |
| Italic | *italic* or _italic_ | _italic_ |
| Strike | ~~strike~~ | [.line-through]#strike# |
| Inline code | `code` | `code` |
| Code block | ```lang ... ``` | [source,lang] / ---- ... ---- |
| Heading H1 | # Heading | = Heading |
| Heading H6 | ###### Heading | ====== Heading |
| Link | [label](url) | url[label] |
| Bare URL | https://x.test | https://x.test |
| Local link | [label](page.html) | link:page.html[label] |
| Inline image |  | image:url[alt] |
| Block image |  (alone) | image::url[alt] |
| Blockquote | > line | [quote] / ____ ... ____ |
| Bullet | - item | * item |
| Nested bullet | - nested | ** nested |
| Numbered | 1. item | . item |
| Nested numbered | 1. nested | .. nested |
| HR | --- | ''' |
| Table header | | a | b | | |=== / | a | b |
| Cross-reference | [anchor](#anchor) | <<anchor,anchor>> |
AsciiDoc quirks worth knowing
Things to remember when you paste into Asciidoctor or Antora.
- AsciiDoc bold uses a single asterisk (*bold*) and italic uses a single underscore (_italic_). Pasting Markdown double asterisks leaves the stars visible.
- Strikethrough has no built-in glyph. The converter uses the role span [.line-through]#text#, which Asciidoctor renders with a CSS line-through.
- Fenced code blocks become an [source,lang] attribute followed by a ---- delimiter on its own line. If no language is given the source attribute is dropped and the block becomes a plain listing.
- Links take the form url[label]. When the label matches the URL the bracketed label is dropped so the URL renders as a clean autolink. Relative paths use the link: macro so the renderer recognizes them as link macros instead of literal text.
- Tables use |=== fences with one cell per pipe. The Markdown alignment row is dropped because AsciiDoc column alignment is set on the table attribute, not per row.
- Bullets use * per level and numbered lists use . per level (up to five levels). Task list checkboxes keep the same [x] / [ ] syntax.
- Cross-references like <<anchor,label>> become Markdown anchor links so internal navigation survives the round trip.
How to use
- Pick the direction: Markdown to AsciiDoc to migrate Markdown into an .adoc file or Antora module, or AsciiDoc to Markdown to pull an Asciidoctor section back out into Markdown.
- Paste your text into the left panel, or click one of the sample buttons to load a typical README, tutorial, or release notes layout.
- Read the converted output on the right and use the syntax cheat sheet card below for any rule you want to double-check.
- Click Copy to copy the result to your clipboard, then paste it into your .adoc file, Antora content folder, GitHub README, or Markdown editor.
- Use Swap output into input to chain a round trip and confirm the conversion is lossless for your content.
About this tool
Markdown to AsciiDoc Converter rewrites CommonMark and GitHub-Flavored Markdown into AsciiDoc, the lightweight markup used by Asciidoctor, Antora, GitHub (.adoc files render natively), Maven and Gradle generated sites, OpenStack docs, and most modern dev documentation toolchains. It also runs in reverse so you can pull an existing .adoc file into Markdown for a README, GitHub issue, Linear ticket, or notes app, and put it back. Every construct is mapped: ATX and setext headings become = through ====== with a leading space, bold (**text** or __text__) becomes AsciiDoc's single-asterisk bold (*text*), italic becomes _text_, strikethrough becomes [.line-through]#text# using the built-in role span (AsciiDoc has no tilde syntax), inline code stays as single backticks but switches to the `+...+` passthrough form whenever the content contains a backtick, fenced code blocks become an [source,lang] attribute followed by a four-dash listing delimiter with the language hint preserved (or a plain listing when no language is given), links become url[label] for external URLs (autolink shorthand when the label matches the URL) and link:path[label] for relative paths, bare URLs pass through unchanged, images on their own line become block-level image::url[alt] macros while inline images become image:url[alt], blockquotes wrap in [quote] / ____ delimited blocks, horizontal rules become ''', ordered lists use . per level (up to five levels), unordered lists use * per level, GFM tables become |=== fenced tables with one cell per pipe, and cross-references like [anchor](#anchor) become <<anchor,label>> so internal navigation survives the round trip. Reference-style Markdown links are resolved inline since AsciiDoc has no reference syntax. The reverse direction reads [source,lang] / ---- listings back as fenced code, ---- and .... delimited blocks as plain code blocks, [quote] / ____ as Markdown blockquotes, |=== tables as GFM tables, role spans [.line-through]#text# as ~~text~~, and Asciidoctor link, mailto, and image macros as Markdown links and images. A built-in side-by-side syntax cheat sheet keeps every rule visible while you edit. Three Markdown samples cover the most common documentation shapes: a README with a CI badge and usage table, a tutorial with code blocks and ordered steps, and release notes with breaking changes and a benchmark table. The conversion is deterministic and runs entirely in your browser using a hand-written line-by-line parser with a token-protection pass so emphasis cannot double-process the contents of links, images, or code spans. Useful when migrating a Markdown docs set to Antora, copying README content into an Asciidoctor page, pulling an Asciidoctor section out for a GitHub issue, or porting between toolchains during a tech-writer handoff. Nothing is uploaded, so private documentation stays on your device.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
Markdown to Jira Converter
Bidirectional Markdown and Jira wiki markup converter with full syntax support.
Open tool
ConverterMarkdown to MediaWiki Converter
Two-way converter between Markdown and Wikipedia, Fandom, and MediaWiki wiki markup.
Open tool
ConverterMarkdown to HTML Converter
Convert Markdown to clean HTML with a live preview and copy button.
Open tool
ConverterHTML to Markdown Converter
Convert HTML to GFM Markdown with tables, code, and reference links.
Open tool
TextMarkdown to Plain Text
Remove Markdown formatting and get clean readable plain text.
Open tool
TextMarkdown TOC Generator
Build a GitHub-style Markdown table of contents from any document.
Open tool