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:
| Jira | Markdown |
|---|---|
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 / ## item | 1. 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.