Markdown URLs to Links
Markdown URLs to Links turns bare http and https addresses into clickable Markdown links while leaving fenced code blocks, existing links and image targets alone. Trailing punctuation stays outside the link, the URL is used as the label, and everything runs in your browser with no upload. Copy the result or download it as a .md file.
Gunakan Markdown URLs to Links
Markdown URLs to Links
Convert raw HTTP and HTTPS URLs into Markdown links while preserving fenced code blocks.
Input Markdown/Text
Output Markdown
Baca Isi
What this tool does
Markdown URLs to Links finds bare web addresses in a Markdown document and wraps each one in link syntax, so https://example.com/docs becomes [https://example.com/docs](https://example.com/docs). The visible text stays the URL, which is what you want when a pasted list of references or a changelog should be clickable instead of just readable.
The conversion happens entirely in your browser. There is no upload, no server request and no queue: the script reads the editor contents, rewrites the lines that need rewriting, and writes the result to the output panel as soon as you press the button.
A quick example
Input:
Read the docs at https://example.com/docs.
Report bugs at https://example.com/issues.
Output:
Read the docs at [https://example.com/docs](https://example.com/docs).
Report bugs at [https://example.com/issues](https://example.com/issues).
The trailing full stop is left outside the link, so the sentence still reads correctly and the punctuation is not swallowed into the URL.
The rules it follows
- Only http and https. A URL must start with
http://orhttps://. Bare domains such asexample.com,www.example.com,mailto:addresses andftp://links are left untouched. - Fenced code is skipped. Between an opening and closing fence of three or more backticks or tildes, nothing is changed. A URL inside a shell snippet or a config example stays literal.
- Existing links are skipped. A URL already sitting inside
[text](url)or an image targetis recognised and left alone, so running the tool twice does not nest links inside links. - Trailing punctuation moves out. A final period, comma, semicolon, colon, question mark or exclamation mark is placed after the closing parenthesis instead of inside the URL.
- The URL is its own label. The converter does not fetch the page title or guess a friendlier label. If you want readable anchor text, edit the link afterwards.
What counts as a raw URL here
The scanner looks for the literal schemes http:// and https:// followed by characters that are not whitespace, angle brackets, double quotes or parentheses. That last restriction matters: a URL containing parentheses, such as a Wikipedia article with a disambiguation suffix, is cut at the first bracket. Query strings with &, paths with slashes, ports and fragments are fine; quotes and brackets are not.
A URL written in angle brackets, as in <https://example.com>, is also skipped because the character class excludes the brackets that surround it.
How to use it
- Paste your Markdown into the input editor, or type it. The header shows the raw input length and a live count of detectable URLs.
- Press Convert. The button turns the document into linked Markdown.
- Check the status card. It reports Output ready together with the number of URLs converted, or Output is empty if nothing was produced.
- Read or edit the output panel. It is an ordinary editable Markdown editor, not a locked preview.
- Use Copy to put the result on the clipboard, or Download to save it as
markdown-urls-to-links.md. - Use the trash icon to clear both panels and start over.
Editing either panel resets the “converted” counter, because the displayed count describes the last conversion run rather than the current text. Press Convert again to refresh both the output and the count.
When it is useful
- Reference lists. Turn a pasted set of documentation URLs into a clickable Markdown list.
- Changelogs and release notes. Issue and pull-request URLs are usually pasted raw; this makes them linkable in one pass.
- Notes imported from other apps. Text exported from chat, email or a ticket often contains bare URLs.
- Draft posts. Add links to a draft without hand-typing every bracket and parenthesis.
- Generated documentation. Clean up output from a script or a language model that printed URLs as plain text.
What it deliberately leaves alone
Fenced blocks are preserved character for character. That is the right default: a URL inside a Dockerfile snippet, a curl command or a JSON sample is data, not prose, and linking it would corrupt the example. Existing Markdown links are preserved too, which makes the tool safe to run over a document that is already partly linked. Images are protected for the same reason, since rewriting an image target into a nested link would break the picture.
It does not normalise URLs, does not add https:// to bare domains, does not shorten anything, and does not validate that a URL resolves. A typo in the address is copied faithfully into the link.
Cases where the result can be wrong
This is a line-by-line text rewriter, not a Markdown parser, so a few edge cases need a manual check:
- Inline code. URLs inside single backticks are converted, because only fenced blocks are skipped. A URL mentioned as code in a sentence will become a link.
- Raw HTML. A URL inside an HTML attribute, such as
href="https://example.com", is not recognised as an existing link and can be wrapped, which breaks the attribute. Strip or protect raw HTML before converting. - Links with a title. A link written as
[text](https://example.com "title")may not be detected as already linked, so the URL inside it can be wrapped a second time. Check titled links after a run. - Parentheses in URLs. Addresses containing brackets are truncated at the bracket, producing a broken link.
- Bare domains and other schemes.
www.example.com,mailto:,tel:andftp://are not converted at all. - Autolinks. Text already written as
<https://example.com>is left as it is.
Privacy and offline behaviour
Nothing is uploaded. The editor, the URL scanner and the download are all local JavaScript, so the tool keeps working if the network drops after the page has loaded. There is no account, no history and no analytics call that carries your document. The only outbound requests are the normal page assets.
Limits
There is no explicit character limit in the tool; practical limits come from the browser's memory and the editor's ability to handle very large documents. Very long files may feel slow in the editor rather than in the conversion, which is a single pass over the lines. The output is always a Markdown file, never HTML, and the tool never edits your original input — it writes a separate result so you can compare the two.
Common mistakes
- Running it on HTML. Markdown text is expected; HTML attributes can be damaged.
- Expecting www links to convert. The scheme must be spelled out.
- Assuming inline code is safe. It is not; only fenced blocks are skipped.
- Forgetting to re-run after editing. The counter resets, but the output does not refresh by itself.
- Expecting friendly link text. The address is used verbatim as the label.
- Treating a converted link as a checked link. No URL is requested or validated.
Frequently Asked Questions
Pertanyaan yang Sering Diajukan
Komentar (0)
Jelaskan masalah yang Anda alami agar kami dapat menyelidikinya dan meningkatkan alat ini.