Import Markdown to Org with the Clipboard in Emacs
04 Dec 2025 Charles Choi
The preponderance of Markdown formatted text in both websites and apps is a blessing and a point of friction for Org users. The content is there, but if you’re an Org user, you really prefer the text to be formatted for Org. If you have Pandoc installed, converting from Markdown to Org is trivial but laborious as it involves making the right command invocation with temporary files.
Thankfully, Emacs can automate this conversion as described in the workflow below:
- From the source app or website, copy the Markdown into the system clipboard. This step pushes this text into the Emacs
kill-ring. - In Emacs, invoke a command which converts the above Markdown text into Org, then pastes (yanks) converted text into a desired Org file.
Note that this workflow presumes that the Emacs kill-ring is integrated with the system clipboard and that pandoc is installed.
The following Elisp command cc/yank-markdown-as-org implements the above workflow:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
This command can be invoked in numerous ways including by key binding, context menu, Transient menu, and directly via M-x. My preference is using the context menu as illustrated in the screenshot below to optimize for mouse copy/paste interactions between different apps.
Users interested in seeing how I’ve configured my context menu can read the source here. Users unfamiliar with Emacs context menus can learn more about it in my post Customizing the Emacs Context Menu.
Closing Thoughts
Implementing cc/yank-markdown-as-org turned out to be a lot more simpler than expected, as the command shell-command-on-region does the heavy lifting in abstracting away the pandoc command invocation and its handling of temporary files. This implementation can serve as a example for other conversions using the kill-ring.
A word of thanks to mekeor on IRC for reminding me that (point-min) and (point-max) exist.