Jira to Markdown

Convert Jira wiki markup back into clean Markdown.

Convert Jira wiki markup to Markdown instantly — headings, bold, italic, monospace, code blocks, lists, links and quotes. Paste a Jira description and get clean Markdown. Runs entirely in your browser, nothing is uploaded. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

Which Jira syntax is converted?

Headings (h1.-h6.), bold, italic, monospace, {code} and {noformat} blocks, ordered and unordered lists with nesting, links, blockquotes, strikethrough and horizontal rules are all mapped to Markdown.

Convert Jira wiki markup to Markdown

Pulled a description out of a Jira ticket and need it in a README, pull request or docs file? Jira’s wiki markup doesn’t render anywhere else. This tool maps it back to standard Markdown line by line, so you can paste a ticket body into GitHub, GitLab, Notion or any Markdown editor and have it render correctly.

How it works

The converter processes your text one line at a time and applies block-level rules first, then inline rules. The block rules decide what a whole line is — a heading, a list item, a quote, a rule, or the opening of a code fence — before the inline rules rewrite emphasis and links within ordinary text. This ordering matters: it stops a stray asterisk inside a heading from being mistaken for bold, and it lets the converter “turn off” inline rewriting for the duration of a code block. The mapping it applies is:

JiraMarkdown
h1.h6.#######
*bold***bold**
_italic__italic_ (unchanged)
{{monospace}}inline backtick code
-struck-~~struck~~
[text|url][text](url)
[url]autolink in angle brackets
* item / ** item- item (indented per depth)
# item / ## item1. item (indented per depth)
bq. quote> quote
{code} / {noformat}fenced code block
-------

List depth is read from how many bullet characters repeat (** is level two), and each level adds two spaces of indentation. Lines inside a {code} or {noformat} block are copied verbatim and never touched, so any markup that happens to appear inside your sample code stays exactly as written.

Why the two markups differ

Jira’s wiki markup predates Markdown’s dominance and made different choices: a single asterisk means bold rather than italic, monospace is double-curly-braces instead of a backtick, and link text is separated from its URL by a pipe instead of being wrapped in parentheses. Italic is the one case where the two agree — both use underscores — which is why the table shows it as unchanged. Strikethrough flips from single hyphens to double tildes, and headings change from the h1.-style prefix to leading hash characters. Knowing these few systematic differences is enough to read a converted block and trust it.

Example

Imagine a Jira description that starts with a level-one heading reading “Release notes”, then a paragraph containing the word “bold” wrapped in single asterisks, the word “italic” wrapped in underscores, and the phrase “inline code” wrapped in double curly braces. Below that sits a two-item bulleted list and a labelled link whose text is “Gera Tools” and whose URL points at the tools site, written in Jira’s [text|url] form.

After conversion, the heading becomes a single-hash heading, “bold” gains its second pair of asterisks to render as **bold**, “italic” stays in underscores, and the double-curly monospace collapses to a single backtick span. The bullets switch from * to -, and the pipe-separated link becomes standard [Gera Tools](https://tools.gera.services) parenthesis form. Paste that result straight into a README, a pull-request description, or a Notion page and it renders correctly with no further cleanup.

Round-tripping with the reverse tool

If you maintain content in both systems, pair this with the companion Markdown to Jira converter. The two are designed to round-trip the common constructs — headings, bold, italic, lists, links, quotes and code blocks — so you can author once and publish to either platform. Round-tripping is not lossless for every exotic macro Jira supports, but for the everyday subset that fills most tickets it returns you to where you started.

Everything runs in your browser — nothing is uploaded.