How to switch between markdown link styles
- Step 1Load the Markdown — Paste your text or drop a
.md/.mdx/.markdownfile. Paste mode wraps the text asinput.mdfor you. - Step 2Decide the direction — Inline → Reference if the document is long and you want clean prose with URLs at the bottom; Reference → Inline if it is short or you are editing and want URLs beside their text.
- Step 3Set the Convert dropdown — Pick Inline → Reference (default) or Reference → Inline. This dropdown is the only control — there are no per-link toggles, presets, or numbering options.
- Step 4Run the conversion — Click Run. To-reference numbers unique URLs and appends definitions; to-inline resolves references and removes the definition block.
- Step 5Spot-check the output — Confirm links rendered the way you expected. Watch for the known asymmetries: shortcut links and single-quote titles do not survive a full round trip.
- Step 6Copy, download, validate — Copy or Download the result, then optionally run the link validator to confirm every link still resolves.
The two directions compared
Both modes are the same converter, set by the Convert dropdown. Each is a single text pass with no code-fence awareness.
| Direction | Mode value | Matches | What it does to the def block |
|---|---|---|---|
| Inline → Reference | to-reference (default) | [text](url) (and ) | Appends [n]: url block, deduped by URL |
| Reference → Inline | to-inline | [text][id] and [text][] | Removes every [id]: url line |
Which style fits which document
Guidance, not a hard rule — both styles render identically. The trade-off is editing experience.
| Document type | Suggested style | Why |
|---|---|---|
| Short README / changelog entry | Inline | Few links; URL beside text is easiest to scan and edit |
| Long article / book chapter | Reference | Clean prose; URLs collected for auditing and bulk edits |
| Doc with the same URL repeated | Reference | Deduplication means one definition, one place to update |
| Section you are actively rewriting | Inline | No scrolling to a bottom block while moving sentences |
| Snippet you'll paste into another file | Inline | Self-contained — the URL travels with the text |
Tier limits
charLimit is a character count distinct from file size. One file per run on Free.
| Tier | Max file size | Max characters | Files per run |
|---|---|---|---|
| Free | 1 MB | 500,000 | 1 |
| Pro | 10 MB | 5,000,000 | 10 |
| Pro-media | 50 MB | 20,000,000 | 50 |
| Developer | 500 MB | unlimited | unlimited |
Cookbook
The same snippet shown through both directions so you can see exactly what each switch produces.
Inline → Reference on a short paragraph
Default direction. Unique URLs are numbered and collected; the prose keeps only the bracketed numbers.
BEFORE: See [docs](https://acme.dev/docs) and [blog](https://acme.dev/blog). AFTER: See [docs][1] and [blog][2]. [1]: https://acme.dev/docs [2]: https://acme.dev/blog
Reference → Inline on the same paragraph
Flip the dropdown and the numbered references resolve back to inline; the definition block disappears.
BEFORE: See [docs][1] and [blog][2]. [1]: https://acme.dev/docs [2]: https://acme.dev/blog AFTER: See [docs](https://acme.dev/docs) and [blog](https://acme.dev/blog).
A round trip that stays clean
Inline → Reference then Reference → Inline returns the original, as long as titles use double quotes and links are full forms. This is the safe round trip.
ORIGINAL: Read [the guide](https://acme.dev "Style Guide"). AFTER to-reference: Read [the guide][1]. [1]: https://acme.dev "Style Guide" AFTER to-inline again: Read [the guide](https://acme.dev "Style Guide").
Deduplication only happens in the reference direction
Going to reference collapses repeated URLs to one number. Going back to inline re-expands each — the inline form does not dedupe.
to-reference: [a](https://x.com) [b](https://x.com) -> [a][1] [b][1] [1]: https://x.com to-inline (no dedupe): [a][1] [b][1] -> [a](https://x.com) [b](https://x.com)
Images switch styles too
Image syntax shares the bracket shape, so both directions handle it. The ! is preserved each way.
to-reference:  -> ![diagram][1] [1]: https://x.com/d.png to-inline: ![diagram][1] -> 
Edge cases and what actually happens
Shortcut links only matter going to inline
Not convertedThe to-inline direction ignores shortcut [text] links (it only rewrites [text][id] and [text][]), yet still removes their definitions — leaving plain text. The to-reference direction never creates shortcut links. Rewrite shortcuts to full form before converting to inline.
Single-quote titles are asymmetric
Round-trip riskGoing to reference preserves a single-quote title passively (url 'Title' is captured whole). Going to inline does not parse single-quote titles, so that definition fails to match and the link is left unresolved. Use double quotes for any title you plan to round-trip.
URL with a closing parenthesis
TruncatedOnly affects the to-reference direction: a URL containing ) truncates at the first ) and leaves a stray paren in the prose. Percent-encode inner parens before converting to reference style.
Existing definitions when converting to reference
CollisionTo-reference numbering starts at 1 and ignores pre-existing definitions, so a document that already has [1]: url ends up with duplicate [1]: lines. Convert a fully-inline document, or renumber existing definitions first.
Undefined references when converting to inline
PreservedIf a [text][id] has no matching definition, the to-inline direction leaves it as written rather than guessing. Search the output for leftover ][ to find unresolved references.
Links inside code fences
ConvertedNeither direction is fence-aware. A link in a ``` block or inline code is converted like any other. If you document link syntax, the example changes — escape it or convert before adding code samples.
Autolinks and bare URLs
Preserved<https://x.com> autolinks and bare pasted URLs are not bracketed links, so neither direction touches them. There is no option to convert them to either style.
Empty document
ExpectedWith no links to convert, both directions return the text essentially unchanged (to-reference appends a trailing blank line; to-inline collapses blank-line runs). No error is raised.
File over the tier limit
413 rejectedFree caps each file at 1 MB / 500,000 characters. Reference-heavy or very long docs may hit the character cap first. Split with the splitter or upgrade for higher ceilings.
Frequently asked questions
Which style is better, inline or reference?
Both render identically — it's an editing preference. Inline keeps the URL beside its text, best for short docs and active rewriting. Reference centralises URLs at the bottom and dedupes repeats, best for long articles and link auditing. This tool lets you switch freely.
How do I pick the direction?
The Convert dropdown has two values: Inline → Reference (default) collects URLs into a numbered block; Reference → Inline expands them back. There are no other options — no per-link toggles, no custom labels, no numbering style.
Is the conversion reversible?
Yes, with two caveats. Use double-quote titles (single quotes don't survive the inline direction) and full reference forms (shortcut [text] links don't convert). Within those rules, a there-and-back trip returns the original.
Does it deduplicate links?
Only going to reference, and only by exact URL string — identical URLs share one numbered definition. Going to inline re-expands each reference independently, so inline output is not deduplicated.
Does it work for image links?
Yes.  and ![alt][n] use the same bracket syntax as text links, so both directions handle images. The leading ! is preserved either way.
Does it handle footnotes?
No. Footnote syntax [^1] is a different construct and is not what this tool converts. For footnote-specific repair and linking, use the footnote linker.
Will it convert links inside code blocks?
Yes — there is no fence awareness in either direction. A link written inside a fenced ``` block or inline code is converted. Escape or move documentation examples that must stay literal.
What about autolinks like <https://x.com>?
They are ignored. Only bracketed inline links [text](url) and bracketed references [text][id] are recognised; angle-bracket autolinks and bare URLs pass through unchanged.
What happens to titles on links?
Double-quote titles round-trip in both directions. Single-quote titles survive going to reference but break going to inline, because the inline pass only parses double quotes. Standardise on double quotes.
Is my document uploaded anywhere?
No. The switch runs in your browser. Pro+ may route to the local runner, which also runs on your machine. Only an anonymous run counter is recorded for signed-in stats.
How big a file can I switch?
Free: 1 MB / 500,000 characters / 1 file. Pro: 10 MB / 5,000,000 / 10. Pro-media: 50 MB / 20,000,000 / 50. Developer: 500 MB and unlimited characters. The character cap often binds before the byte cap on long prose.
Can I clean up the result afterward?
Yes. After switching to reference style, run the prettifier for consistent spacing, or the minifier to strip blank lines. After switching to inline, the link validator confirms every expanded URL resolves.
Privacy first
All Markdown processing runs locally in your browser using JavaScript. No file is ever uploaded to JAD Apps servers — only metadata counters are saved for signed-in dashboard stats.