Org Mode → Markdown

Convert Emacs Org-mode text into Markdown.

Open tool

Overview

The Org Mode-to-Markdown converter rewrites Emacs Org-mode documents into Markdown. Headings, lists, code blocks, links, and inline emphasis get translated so notes living in .org files can be shared on platforms that render Markdown.

It's the practical bridge for Emacs users who want to publish their notes on GitHub, push them through MkDocs, or share with colleagues who don't run Emacs. Developers and writers migrating from Org to a Markdown-based workflow use an org to markdown converter to skip manual translation.

How it works

Org and Markdown use different syntax for the same concepts. The converter maps Org's leading-asterisk heading levels (* Title, ** Subsection) to Markdown's hash heading levels (#, ##). Lists with - or + markers carry over directly; numbered lists with 1. or 1) are normalised to 1.. Emphasis converts: *bold* to **bold**, /italic/ to *italic*, =verbatim= and ~code~ both become `code`.

Source blocks (#+BEGIN_SRC lang ... #+END_SRC) become fenced code blocks with the language hint. Org links [[url][label]] become Markdown [label](url). Tables with |-delimited cells become GitHub-flavoured pipe tables — the conversion is largely cosmetic since the structure is already similar.

Examples

Org input:
* Project Notes

** Setup

#+BEGIN_SRC bash
make install
#+END_SRC

See [[https://example.com][docs]].

Output:
# Project Notes

## Setup

```bash
make install

See docs.


Org: bold and /italic/ with =verbatim=.
Markdown: bold and italic with verbatim.


## FAQ

**Are TODO keywords preserved?**

Org's `TODO`, `DONE`, and similar state keywords are emitted as bold prefixes in the Markdown heading: `**TODO** Write tests`. Markdown has no native task-state concept beyond GFM checkboxes.

**What about Org babel evaluation results?**

Result blocks (`#+RESULTS:`) become fenced code blocks. The evaluation itself isn't replayed — output is whatever Org cached in the source file.

**Do property drawers survive?**

Drawers (`:PROPERTIES: ... :END:`) are dropped by default since Markdown has no equivalent. Toggle the option to preserve them as HTML comments if you want them retained for round-tripping.

Try Org Mode → Markdown

An unhandled error has occurred. Reload ×