[{"data":1,"prerenderedAt":1319},["ShallowReactive",2],{"blog-post:en:\u002Fen\u002Fblog\u002Fhow-to-create-links-in-markdown":3},{"id":4,"title":5,"author":6,"body":7,"category":1288,"date":1289,"description":1290,"extension":1291,"image":1292,"imageAlt":5,"meta":1293,"navigation":1294,"path":1295,"seo":1296,"stem":1297,"tags":1298,"translationKey":1299,"__hash__":1300,"html":1301,"bodyMarkdown":1302,"translations":1303,"previous":1310,"next":1314},"blog\u002Fen\u002Fblog\u002F5.how-to-create-links-in-markdown.md","How to Create Links in Markdown","Antoine Frankart",{"type":8,"value":9,"toc":1262},"minimark",[10,14,17,22,25,42,49,52,61,64,68,71,106,113,116,135,138,141,145,148,163,170,173,182,189,193,196,199,208,215,218,242,245,312,327,332,335,344,359,363,366,386,389,412,415,419,426,435,438,447,453,457,460,469,475,478,493,500,504,507,522,528,531,540,548,552,555,564,567,581,584,593,597,604,607,616,619,622,626,629,681,684,688,691,721,724,744,748,751,806,813,816,820,823,894,897,901,905,908,923,934,938,945,948,957,972,991,994,998,1001,1015,1019,1022,1033,1053,1063,1067,1222,1225,1228,1231,1248,1251,1258],[11,12,13],"p",{},"Links are one of the first things you learn in Markdown, and one of the last things you fully master. The basic hyperlink syntax takes five seconds. But then you need to link to a section within the same page, to a local file, to an email address, or to open a URL in a new tab — and suddenly the five-second syntax isn't enough.",[11,15,16],{},"This guide covers every type of Markdown link, from the basics to the edge cases that trip people up.",[18,19,21],"h2",{"id":20},"inline-links","Inline links",[11,23,24],{},"The standard Markdown link. Square brackets for the text, parentheses for the URL.",[26,27,32],"pre",{"className":28,"code":29,"language":30,"meta":31,"style":31},"language-markdown shiki shiki-themes github-light github-dark","[Fude](https:\u002F\u002Ffude.md)\n","markdown","",[33,34,35],"code",{"__ignoreMap":31},[36,37,40],"span",{"class":38,"line":39},"line",1,[36,41,29],{},[11,43,44,45,48],{},"This renders as a clickable hyperlink: the text \"Fude\" pointing to ",[33,46,47],{},"https:\u002F\u002Ffude.md",".",[11,50,51],{},"You can add an optional title that appears as a tooltip on hover:",[26,53,55],{"className":28,"code":54,"language":30,"meta":31,"style":31},"[Fude](https:\u002F\u002Ffude.md \"A Markdown viewer for all your devices\")\n",[33,56,57],{"__ignoreMap":31},[36,58,59],{"class":38,"line":39},[36,60,54],{},[11,62,63],{},"The title goes inside quotes, after the URL, still inside the parentheses. Most renderers show it as a browser tooltip. But don't rely on it as an accessibility solution — support is inconsistent across devices and assistive technologies.",[18,65,67],{"id":66},"reference-links","Reference links",[11,69,70],{},"When you use the same URL multiple times, or when long URLs make your text hard to read, reference links are the better option.",[26,72,74],{"className":28,"code":73,"language":30,"meta":31,"style":31},"I use [Fude][fude] to read Markdown on all my devices.\nFor syntax questions, I check the [CommonMark spec][commonmark].\n\n[fude]: https:\u002F\u002Ffude.md \"Markdown viewer\"\n[commonmark]: https:\u002F\u002Fcommonmark.org\n",[33,75,76,81,87,94,100],{"__ignoreMap":31},[36,77,78],{"class":38,"line":39},[36,79,80],{},"I use [Fude][fude] to read Markdown on all my devices.\n",[36,82,84],{"class":38,"line":83},2,[36,85,86],{},"For syntax questions, I check the [CommonMark spec][commonmark].\n",[36,88,90],{"class":38,"line":89},3,[36,91,93],{"emptyLinePlaceholder":92},true,"\n",[36,95,97],{"class":38,"line":96},4,[36,98,99],{},"[fude]: https:\u002F\u002Ffude.md \"Markdown viewer\"\n",[36,101,103],{"class":38,"line":102},5,[36,104,105],{},"[commonmark]: https:\u002F\u002Fcommonmark.org\n",[11,107,108,109,112],{},"The link definitions (the lines with ",[33,110,111],{},"[label]: URL",") can be placed anywhere in the file — top, bottom, or grouped right after the paragraph that uses them. They don't appear in the rendered output.",[11,114,115],{},"You can also use the link text itself as the label:",[26,117,119],{"className":28,"code":118,"language":30,"meta":31,"style":31},"Check out [CommonMark] for the full spec.\n\n[CommonMark]: https:\u002F\u002Fcommonmark.org\n",[33,120,121,126,130],{"__ignoreMap":31},[36,122,123],{"class":38,"line":39},[36,124,125],{},"Check out [CommonMark] for the full spec.\n",[36,127,128],{"class":38,"line":83},[36,129,93],{"emptyLinePlaceholder":92},[36,131,132],{"class":38,"line":89},[36,133,134],{},"[CommonMark]: https:\u002F\u002Fcommonmark.org\n",[11,136,137],{},"This is called an implicit reference link. It's clean, but only works when the link text matches the label exactly (case-insensitive).",[11,139,140],{},"Reference links are especially useful in long documents like READMEs. They keep the prose readable and the URLs easy to update — change it once, and every reference picks up the new URL.",[18,142,144],{"id":143},"autolinks","Autolinks",[11,146,147],{},"If you just want to display a raw URL as a clickable link, wrap it in angle brackets:",[26,149,151],{"className":28,"code":150,"language":30,"meta":31,"style":31},"\u003Chttps:\u002F\u002Ffude.md>\n\u003Ccontact@fude.md>\n",[33,152,153,158],{"__ignoreMap":31},[36,154,155],{"class":38,"line":39},[36,156,157],{},"\u003Chttps:\u002F\u002Ffude.md>\n",[36,159,160],{"class":38,"line":83},[36,161,162],{},"\u003Ccontact@fude.md>\n",[11,164,165,166,169],{},"Both render as clickable links. The first one links to the URL, the second creates a ",[33,167,168],{},"mailto:"," link.",[11,171,172],{},"In GitHub Flavored Markdown (GFM), bare URLs are automatically linked even without angle brackets:",[26,174,176],{"className":28,"code":175,"language":30,"meta":31,"style":31},"Visit https:\u002F\u002Ffude.md for more info.\n",[33,177,178],{"__ignoreMap":31},[36,179,180],{"class":38,"line":39},[36,181,175],{},[11,183,184,185,188],{},"But this behavior isn't universal. CommonMark doesn't auto-link bare URLs. If you want your Markdown to work everywhere, use either the ",[33,186,187],{},"[text](url)"," syntax or angle brackets.",[18,190,192],{"id":191},"links-to-sections-anchor-links","Links to sections (anchor links)",[11,194,195],{},"Linking to a heading within the same document is one of the most common needs — and one of the most confusing, because the behavior varies between tools.",[11,197,198],{},"The general syntax:",[26,200,202],{"className":28,"code":201,"language":30,"meta":31,"style":31},"[Jump to the FAQ](#faq)\n",[33,203,204],{"__ignoreMap":31},[36,205,206],{"class":38,"line":39},[36,207,201],{},[11,209,210,211,214],{},"The ",[33,212,213],{},"#faq"," part is the anchor. It matches a heading in the same document. The question is: how is the anchor generated from the heading text?",[11,216,217],{},"The rules for most renderers (GitHub, Obsidian, most static site generators):",[219,220,221,225,228,231],"ol",{},[222,223,224],"li",{},"Convert the heading to lowercase.",[222,226,227],{},"Replace spaces with hyphens.",[222,229,230],{},"Remove punctuation (except hyphens).",[222,232,233,234,237,238,241],{},"If there are duplicate headings, append ",[33,235,236],{},"-1",", ",[33,239,240],{},"-2",", etc.",[11,243,244],{},"Examples:",[246,247,248,261],"table",{},[249,250,251],"thead",{},[252,253,254,258],"tr",{},[255,256,257],"th",{},"Heading",[255,259,260],{},"Anchor",[262,263,264,277,289,300],"tbody",{},[252,265,266,272],{},[267,268,269],"td",{},[33,270,271],{},"## Getting Started",[267,273,274],{},[33,275,276],{},"#getting-started",[252,278,279,284],{},[267,280,281],{},[33,282,283],{},"## What's New?",[267,285,286],{},[33,287,288],{},"#whats-new",[252,290,291,296],{},[267,292,293],{},[33,294,295],{},"## FAQ",[267,297,298],{},[33,299,213],{},[252,301,302,307],{},[267,303,304],{},[33,305,306],{},"## v2.0 Release Notes",[267,308,309],{},[33,310,311],{},"#v20-release-notes",[11,313,314,315,318,319,322,323,326],{},"A heading like ",[33,316,317],{},"## C++ Setup Guide"," becomes ",[33,320,321],{},"#c-setup-guide"," on GitHub (the ",[33,324,325],{},"+"," signs are stripped). But in Obsidian, the behavior may differ slightly. Always test your anchor links in the target renderer.",[328,329,331],"h3",{"id":330},"linking-to-a-section-in-another-file","Linking to a section in another file",[11,333,334],{},"This works in GitHub and most documentation systems:",[26,336,338],{"className":28,"code":337,"language":30,"meta":31,"style":31},"[Installation steps](.\u002Fsetup.md#installation)\n",[33,339,340],{"__ignoreMap":31},[36,341,342],{"class":38,"line":39},[36,343,337],{},[11,345,346,347,350,351,354,355,358],{},"The path points to the file, and the ",[33,348,349],{},"#"," fragment points to the heading within that file. Relative paths (starting with ",[33,352,353],{},".\u002F"," or ",[33,356,357],{},"..\u002F",") are the most portable option.",[18,360,362],{"id":361},"relative-links","Relative links",[11,364,365],{},"Relative links point to other files in the same project, without using a full URL.",[26,367,369],{"className":28,"code":368,"language":30,"meta":31,"style":31},"[Read the changelog](.\u002FCHANGELOG.md)\n[Go back to the main page](..\u002FREADME.md)\n[See the license](.\u002Fdocs\u002FLICENSE)\n",[33,370,371,376,381],{"__ignoreMap":31},[36,372,373],{"class":38,"line":39},[36,374,375],{},"[Read the changelog](.\u002FCHANGELOG.md)\n",[36,377,378],{"class":38,"line":83},[36,379,380],{},"[Go back to the main page](..\u002FREADME.md)\n",[36,382,383],{"class":38,"line":89},[36,384,385],{},"[See the license](.\u002Fdocs\u002FLICENSE)\n",[11,387,388],{},"The rules:",[390,391,392,397,402],"ul",{},[222,393,394,396],{},[33,395,353],{}," means \"same directory.\"",[222,398,399,401],{},[33,400,357],{}," means \"parent directory.\"",[222,403,404,405,408,409,411],{},"No prefix also works (",[33,406,407],{},"CHANGELOG.md","), but ",[33,410,353],{}," makes the intent explicit.",[11,413,414],{},"Relative links are essential in GitHub repositories. They work in READMEs, wikis, and rendered Markdown files. They also make your docs portable — if someone clones the repo, the links still work locally.",[328,416,418],{"id":417},"paths-with-spaces","Paths with spaces",[11,420,421,422,425],{},"If a file or folder name contains spaces, encode them as ",[33,423,424],{},"%20",":",[26,427,429],{"className":28,"code":428,"language":30,"meta":31,"style":31},"[Design doc](.\u002Fdocs\u002Fdesign%20document.md)\n",[33,430,431],{"__ignoreMap":31},[36,432,433],{"class":38,"line":39},[36,434,428],{},[11,436,437],{},"Or wrap the URL in angle brackets (less common, but valid):",[26,439,441],{"className":28,"code":440,"language":30,"meta":31,"style":31},"[Design doc](\u003C.\u002Fdocs\u002Fdesign document.md>)\n",[33,442,443],{"__ignoreMap":31},[36,444,445],{"class":38,"line":39},[36,446,440],{},[11,448,449,450,452],{},"Both approaches work. I prefer ",[33,451,424],{}," because it's more explicit and avoids surprises across different parsers.",[18,454,456],{"id":455},"links-to-local-files","Links to local files",[11,458,459],{},"Linking to a file on your local machine works in some renderers but not others.",[26,461,463],{"className":28,"code":462,"language":30,"meta":31,"style":31},"[Open my notes](file:\u002F\u002F\u002FUsers\u002Falice\u002FDocuments\u002Fnotes.md)\n",[33,464,465],{"__ignoreMap":31},[36,466,467],{"class":38,"line":39},[36,468,462],{},[11,470,210,471,474],{},[33,472,473],{},"file:\u002F\u002F"," protocol is supported in some desktop Markdown apps, but browsers and GitHub strip it for security reasons. It's useful in personal notes (Obsidian, Fude, VS Code), but not for shared documents.",[11,476,477],{},"In Obsidian specifically, you can link to local files using the wiki-link syntax or standard Markdown:",[26,479,481],{"className":28,"code":480,"language":30,"meta":31,"style":31},"[My note](.\u002Fmy-note.md)\n[[my-note]]\n",[33,482,483,488],{"__ignoreMap":31},[36,484,485],{"class":38,"line":39},[36,486,487],{},"[My note](.\u002Fmy-note.md)\n",[36,489,490],{"class":38,"line":83},[36,491,492],{},"[[my-note]]\n",[11,494,495,496,499],{},"The wiki-link syntax (",[33,497,498],{},"[[...]]",") is Obsidian-specific and won't render in standard Markdown renderers. If portability matters, stick with the standard syntax.",[18,501,503],{"id":502},"email-links","Email links",[11,505,506],{},"Two ways to create a clickable email link:",[26,508,510],{"className":28,"code":509,"language":30,"meta":31,"style":31},"\u003Ccontact@example.com>\n[Send us an email](mailto:contact@example.com)\n",[33,511,512,517],{"__ignoreMap":31},[36,513,514],{"class":38,"line":39},[36,515,516],{},"\u003Ccontact@example.com>\n",[36,518,519],{"class":38,"line":83},[36,520,521],{},"[Send us an email](mailto:contact@example.com)\n",[11,523,524,525,527],{},"The first form auto-generates a ",[33,526,168],{}," link. The second lets you customize the link text.",[11,529,530],{},"You can also pre-fill the subject line:",[26,532,534],{"className":28,"code":533,"language":30,"meta":31,"style":31},"[Report a bug](mailto:bugs@example.com?subject=Bug%20Report)\n",[33,535,536],{"__ignoreMap":31},[36,537,538],{"class":38,"line":39},[36,539,533],{},[11,541,210,542,545,546,48],{},[33,543,544],{},"?subject="," parameter works in most email clients. Spaces need to be encoded as ",[33,547,424],{},[18,549,551],{"id":550},"image-links","Image links",[11,553,554],{},"In Markdown, an image is not a link by default — it just embeds the image. To make an image clickable, wrap the image syntax inside a link:",[26,556,558],{"className":28,"code":557,"language":30,"meta":31,"style":31},"[![Alt text](.\u002Flogo.png)](https:\u002F\u002Ffude.md)\n",[33,559,560],{"__ignoreMap":31},[36,561,562],{"class":38,"line":39},[36,563,557],{},[11,565,566],{},"Breaking it down:",[390,568,569,575],{},[222,570,571,574],{},[33,572,573],{},"![Alt text](.\u002Flogo.png)"," is the image.",[222,576,577,580],{},[33,578,579],{},"[...](https:\u002F\u002Ffude.md)"," is the link wrapping the image.",[11,582,583],{},"The result: clicking the image navigates to the URL. This is commonly used for badges in GitHub READMEs:",[26,585,587],{"className":28,"code":586,"language":30,"meta":31,"style":31},"[![Build Status](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-green)](https:\u002F\u002Fgithub.com\u002Fuser\u002Frepo\u002Factions)\n",[33,588,589],{"__ignoreMap":31},[36,590,591],{"class":38,"line":39},[36,592,586],{},[18,594,596],{"id":595},"opening-links-in-a-new-tab","Opening links in a new tab",[11,598,599,600,603],{},"Standard Markdown has no syntax for ",[33,601,602],{},"target=\"_blank\"",". There's no way to force a link to open in a new tab using pure Markdown.",[11,605,606],{},"If your renderer supports HTML, you can use:",[26,608,610],{"className":28,"code":609,"language":30,"meta":31,"style":31},"\u003Ca href=\"https:\u002F\u002Ffude.md\" target=\"_blank\">Open Fude\u003C\u002Fa>\n",[33,611,612],{"__ignoreMap":31},[36,613,614],{"class":38,"line":39},[36,615,609],{},[11,617,618],{},"This works on GitHub (partially — GitHub strips some attributes), in most static site generators, and in Obsidian's reading mode.",[11,620,621],{},"Some static site generators (Hugo, Astro, Nuxt Content) let you configure this globally — all external links open in a new tab by default, without needing HTML in your content. Check your framework's documentation.",[18,623,625],{"id":624},"links-in-github","Links in GitHub",[11,627,628],{},"GitHub Flavored Markdown supports all the link types above, with a few specifics:",[390,630,631,638,652,658,668,673],{},[222,632,633,637],{},[634,635,636],"strong",{},"Auto-linking",": bare URLs become clickable without angle brackets.",[222,639,640,643,644,647,648,651],{},[634,641,642],{},"Issue\u002FPR references",": in GitHub conversations, ",[33,645,646],{},"#123"," automatically links to issue or pull request 123 in the same repo. ",[33,649,650],{},"user\u002Frepo#123"," links across repos. These shorthand references are not created in repository files or wikis.",[222,653,654,657],{},[634,655,656],{},"Commit references",": paste a commit SHA and GitHub turns it into a link.",[222,659,660,663,664,667],{},[634,661,662],{},"@mentions",": ",[33,665,666],{},"@username"," links to a GitHub profile.",[222,669,670,672],{},[634,671,362],{},": work in READMEs, wikis, and all rendered Markdown files. GitHub resolves them relative to the file's location in the repo.",[222,674,675,680],{},[634,676,677,679],{},[33,678,473],{}," links",": stripped for security. Don't use them.",[11,682,683],{},"These auto-linking features are GitHub-specific. They won't work in other Markdown renderers.",[18,685,687],{"id":686},"links-in-fude","Links in Fude",[11,689,690],{},"In Fude, standard Markdown links work as you would expect:",[390,692,693,699,702,709,712,718],{},[222,694,695,696,698],{},"Inline links ",[33,697,187],{}," and reference links render and are clickable.",[222,700,701],{},"Web links open in your default browser.",[222,703,704,705,708],{},"Relative links between Markdown files work within your document collection. Clicking a link to another ",[33,706,707],{},".md"," file opens it directly in Fude.",[222,710,711],{},"Anchor links to sections within the same document scroll to the heading.",[222,713,714,715,717],{},"Email links (",[33,716,168],{},") open your default mail client.",[222,719,720],{},"Image links (clickable images) render correctly.",[11,722,723],{},"What Fude doesn't support:",[390,725,726,731,738],{},[222,727,728,730],{},[33,729,473],{}," protocol links are not supported for security reasons.",[222,732,733,734,737],{},"Raw HTML links (",[33,735,736],{},"\u003Ca href=\"...\" target=\"_blank\">",") are not rendered as HTML — Fude focuses on standard Markdown syntax.",[222,739,740,741,743],{},"Wiki-links (",[33,742,498],{},") are not supported. Fude uses standard Markdown link syntax.",[18,745,747],{"id":746},"links-in-obsidian","Links in Obsidian",[11,749,750],{},"Obsidian supports standard Markdown links and adds its own syntax:",[390,752,753,766,775,788,797],{},[222,754,755,663,758,761,762,765],{},[634,756,757],{},"Wiki-links",[33,759,760],{},"[[note-name]]"," links to another note in your vault. ",[33,763,764],{},"[[note-name|display text]]"," lets you customize the visible text.",[222,767,768,663,771,774],{},[634,769,770],{},"Standard Markdown links",[33,772,773],{},"[text](.\u002Fnote.md)"," works too. Obsidian resolves relative paths within the vault.",[222,776,777,663,780,783,784,787],{},[634,778,779],{},"Section links",[33,781,782],{},"[[note-name#section]]"," links to a heading in another note. ",[33,785,786],{},"[[#section]]"," links to a heading in the current note.",[222,789,790,663,793,796],{},[634,791,792],{},"Block references",[33,794,795],{},"[[note-name#^block-id]]"," links to a specific block (paragraph, list item) — an Obsidian-specific feature.",[222,798,799,663,802,805],{},[634,800,801],{},"Embeds",[33,803,804],{},"![[note-name]]"," embeds the content of another note inline. Not technically a link, but related.",[11,807,808,809,812],{},"The big choice in Obsidian: ",[634,810,811],{},"wiki-links vs. standard Markdown links",". Wiki-links are shorter and auto-complete in the editor. Standard Markdown links are portable — they'll work if you ever move your notes to another tool.",[11,814,815],{},"You can switch between the two in Settings > Files and Links > \"Use Wikilinks.\"",[18,817,819],{"id":818},"when-to-use-which-link-type","When to use which link type",[11,821,822],{},"With so many options, it's easy to overthink it. Here's a decision guide:",[390,824,825,834,840,849,859,869,878],{},[222,826,827,830,831,833],{},[634,828,829],{},"Linking to an external website?"," Use an inline link: ",[33,832,187],{},". It's the default for a reason.",[222,835,836,839],{},[634,837,838],{},"Same URL used multiple times in one document?"," Use reference links. One place to update, zero risk of inconsistency.",[222,841,842,845,846,48],{},[634,843,844],{},"Linking to another section on the same page?"," Use an anchor link: ",[33,847,848],{},"[text](#heading-id)",[222,850,851,854,855,858],{},[634,852,853],{},"Linking to another file in the same repo or project?"," Use a relative link: ",[33,856,857],{},"[text](.\u002Fother-file.md)",". Avoid absolute URLs — they break when the repo moves.",[222,860,861,864,865,868],{},[634,862,863],{},"Just want to show a raw URL?"," Wrap it in angle brackets: ",[33,866,867],{},"\u003Chttps:\u002F\u002Fexample.com>",". Clean and portable.",[222,870,871,874,875,48],{},[634,872,873],{},"Making an image clickable?"," Wrap the image syntax inside a link: ",[33,876,877],{},"[![alt](img.png)](url)",[222,879,880,886,887,354,890,893],{},[634,881,882,883,885],{},"Need a ",[33,884,168],{}," link?"," Either ",[33,888,889],{},"\u003Cemail@example.com>",[33,891,892],{},"[text](mailto:email@example.com)"," — the second gives you control over the link text.",[11,895,896],{},"When in doubt, start with an inline link. It covers 80% of cases.",[18,898,900],{"id":899},"debugging-common-problems","Debugging common problems",[328,902,904],{"id":903},"my-link-shows-as-plain-text","\"My link shows as plain text\"",[11,906,907],{},"Most likely cause: a space between the brackets and the parentheses.",[26,909,911],{"className":28,"code":910,"language":30,"meta":31,"style":31},"[text] (url)   ← broken (space between ] and ()\n[text](url)    ← correct\n",[33,912,913,918],{"__ignoreMap":31},[36,914,915],{"class":38,"line":39},[36,916,917],{},"[text] (url)   ← broken (space between ] and ()\n",[36,919,920],{"class":38,"line":83},[36,921,922],{},"[text](url)    ← correct\n",[11,924,925,926,929,930,933],{},"Markdown requires ",[33,927,928],{},"]"," and ",[33,931,932],{},"("," to be immediately adjacent.",[328,935,937],{"id":936},"the-url-breaks-because-it-contains-parentheses","\"The URL breaks because it contains parentheses\"",[11,939,940,941,944],{},"URLs with parentheses — common in Wikipedia — break the Markdown parser because ",[33,942,943],{},")"," closes the link.",[11,946,947],{},"Fix: encode the parentheses.",[26,949,951],{"className":28,"code":950,"language":30,"meta":31,"style":31},"[Article](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown_%28language%29)\n",[33,952,953],{"__ignoreMap":31},[36,954,955],{"class":38,"line":39},[36,956,950],{},[11,958,959,960,962,963,929,966,962,968,971],{},"Replace ",[33,961,932],{}," with ",[33,964,965],{},"%28",[33,967,943],{},[33,969,970],{},"%29",". Alternatively, use a reference link:",[26,973,975],{"className":28,"code":974,"language":30,"meta":31,"style":31},"[Article][wiki-md]\n\n[wiki-md]: https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown_(language)\n",[33,976,977,982,986],{"__ignoreMap":31},[36,978,979],{"class":38,"line":39},[36,980,981],{},"[Article][wiki-md]\n",[36,983,984],{"class":38,"line":83},[36,985,93],{"emptyLinePlaceholder":92},[36,987,988],{"class":38,"line":89},[36,989,990],{},"[wiki-md]: https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown_(language)\n",[11,992,993],{},"Reference links handle parentheses in URLs more gracefully in most parsers.",[328,995,997],{"id":996},"my-anchor-link-doesnt-work","\"My anchor link doesn't work\"",[11,999,1000],{},"Check three things:",[219,1002,1003,1006,1012],{},[222,1004,1005],{},"Is the heading ID generated correctly? (lowercase, hyphens, no punctuation)",[222,1007,1008,1009,1011],{},"Is there a duplicate heading with the same text? (the second one gets ",[33,1010,236],{}," appended)",[222,1013,1014],{},"Are you testing in the same renderer where it will be published? (GitHub, Obsidian, and Hugo all generate anchors slightly differently)",[328,1016,1018],{"id":1017},"my-relative-link-works-locally-but-breaks-on-github","\"My relative link works locally but breaks on GitHub\"",[11,1020,1021],{},"Common cause: the link uses a path relative to the project root, but Markdown resolves paths relative to the file's location.",[11,1023,1024,1025,1028,1029,1032],{},"If your file is at ",[33,1026,1027],{},"docs\u002Fguide.md"," and you want to link to ",[33,1030,1031],{},"README.md"," at the root:",[26,1034,1036],{"className":28,"code":1035,"language":30,"meta":31,"style":31},"[README](..\u002FREADME.md)    ← correct (go up one directory)\n[README](.\u002FREADME.md)     ← broken (looks in docs\u002F)\n[README](\u002FREADME.md)      ← works on some platforms, not all\n",[33,1037,1038,1043,1048],{"__ignoreMap":31},[36,1039,1040],{"class":38,"line":39},[36,1041,1042],{},"[README](..\u002FREADME.md)    ← correct (go up one directory)\n",[36,1044,1045],{"class":38,"line":83},[36,1046,1047],{},"[README](.\u002FREADME.md)     ← broken (looks in docs\u002F)\n",[36,1049,1050],{"class":38,"line":89},[36,1051,1052],{},"[README](\u002FREADME.md)      ← works on some platforms, not all\n",[11,1054,1055,1056,1058,1059,1062],{},"Use ",[33,1057,357],{}," to navigate up. Avoid leading ",[33,1060,1061],{},"\u002F"," for maximum portability.",[18,1064,1066],{"id":1065},"quick-reference","Quick reference",[26,1068,1070],{"className":28,"code":1069,"language":30,"meta":31,"style":31},"# Inline link\n[text](https:\u002F\u002Fexample.com)\n[text](https:\u002F\u002Fexample.com \"title\")\n\n# Reference link\n[text][label]\n[label]: https:\u002F\u002Fexample.com\n\n# Autolink\n\u003Chttps:\u002F\u002Fexample.com>\n\u003Cuser@example.com>\n\n# Anchor (same page)\n[Go to section](#section-name)\n\n# Relative link\n[Other file](.\u002Fother-file.md)\n[Section in other file](.\u002Fother-file.md#section)\n\n# Email\n[Email us](mailto:hi@example.com)\n\n# Image link\n[![Alt](image.png)](https:\u002F\u002Fexample.com)\n\n# New tab (HTML)\n\u003Ca href=\"https:\u002F\u002Fexample.com\" target=\"_blank\">Link\u003C\u002Fa>\n",[33,1071,1072,1077,1082,1087,1091,1096,1102,1108,1113,1119,1125,1131,1136,1142,1148,1153,1159,1165,1171,1176,1182,1188,1193,1199,1205,1210,1216],{"__ignoreMap":31},[36,1073,1074],{"class":38,"line":39},[36,1075,1076],{},"# Inline link\n",[36,1078,1079],{"class":38,"line":83},[36,1080,1081],{},"[text](https:\u002F\u002Fexample.com)\n",[36,1083,1084],{"class":38,"line":89},[36,1085,1086],{},"[text](https:\u002F\u002Fexample.com \"title\")\n",[36,1088,1089],{"class":38,"line":96},[36,1090,93],{"emptyLinePlaceholder":92},[36,1092,1093],{"class":38,"line":102},[36,1094,1095],{},"# Reference link\n",[36,1097,1099],{"class":38,"line":1098},6,[36,1100,1101],{},"[text][label]\n",[36,1103,1105],{"class":38,"line":1104},7,[36,1106,1107],{},"[label]: https:\u002F\u002Fexample.com\n",[36,1109,1111],{"class":38,"line":1110},8,[36,1112,93],{"emptyLinePlaceholder":92},[36,1114,1116],{"class":38,"line":1115},9,[36,1117,1118],{},"# Autolink\n",[36,1120,1122],{"class":38,"line":1121},10,[36,1123,1124],{},"\u003Chttps:\u002F\u002Fexample.com>\n",[36,1126,1128],{"class":38,"line":1127},11,[36,1129,1130],{},"\u003Cuser@example.com>\n",[36,1132,1134],{"class":38,"line":1133},12,[36,1135,93],{"emptyLinePlaceholder":92},[36,1137,1139],{"class":38,"line":1138},13,[36,1140,1141],{},"# Anchor (same page)\n",[36,1143,1145],{"class":38,"line":1144},14,[36,1146,1147],{},"[Go to section](#section-name)\n",[36,1149,1151],{"class":38,"line":1150},15,[36,1152,93],{"emptyLinePlaceholder":92},[36,1154,1156],{"class":38,"line":1155},16,[36,1157,1158],{},"# Relative link\n",[36,1160,1162],{"class":38,"line":1161},17,[36,1163,1164],{},"[Other file](.\u002Fother-file.md)\n",[36,1166,1168],{"class":38,"line":1167},18,[36,1169,1170],{},"[Section in other file](.\u002Fother-file.md#section)\n",[36,1172,1174],{"class":38,"line":1173},19,[36,1175,93],{"emptyLinePlaceholder":92},[36,1177,1179],{"class":38,"line":1178},20,[36,1180,1181],{},"# Email\n",[36,1183,1185],{"class":38,"line":1184},21,[36,1186,1187],{},"[Email us](mailto:hi@example.com)\n",[36,1189,1191],{"class":38,"line":1190},22,[36,1192,93],{"emptyLinePlaceholder":92},[36,1194,1196],{"class":38,"line":1195},23,[36,1197,1198],{},"# Image link\n",[36,1200,1202],{"class":38,"line":1201},24,[36,1203,1204],{},"[![Alt](image.png)](https:\u002F\u002Fexample.com)\n",[36,1206,1208],{"class":38,"line":1207},25,[36,1209,93],{"emptyLinePlaceholder":92},[36,1211,1213],{"class":38,"line":1212},26,[36,1214,1215],{},"# New tab (HTML)\n",[36,1217,1219],{"class":38,"line":1218},27,[36,1220,1221],{},"\u003Ca href=\"https:\u002F\u002Fexample.com\" target=\"_blank\">Link\u003C\u002Fa>\n",[1223,1224],"hr",{},[11,1226,1227],{},"Markdown links are deceptively simple. The basic syntax covers 80% of cases, but the remaining 20% — anchor links, relative paths, URLs with special characters, tool-specific behaviors — is where most people get stuck.",[11,1229,1230],{},"Now you have the complete picture.",[11,1232,1233,1234,237,1239,1243,1244,48],{},"For other Markdown guides, see our articles on ",[1235,1236,1238],"a",{"href":1237},"\u002Fen\u002Fblog\u002Fmarkdown-table-complete-guide-with-examples","tables",[1235,1240,1242],{"href":1241},"\u002Fen\u002Fblog\u002Fhow-to-add-horizontal-line-markdown","horizontal lines",", and ",[1235,1245,1247],{"href":1246},"\u002Fen\u002Fblog\u002Fwhy-ai-responds-in-markdown","why AI responds in Markdown",[11,1249,1250],{},"If you're looking for a Markdown viewer that handles links cleanly across all your devices, try Fude.",[11,1252,1253,1254],{},"📌 ",[1235,1255,1257],{"href":1256},"\u002Fen#download","Download Fude",[1259,1260,1261],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":31,"searchDepth":83,"depth":83,"links":1263},[1264,1265,1266,1267,1270,1273,1274,1275,1276,1277,1278,1279,1280,1281,1287],{"id":20,"depth":83,"text":21},{"id":66,"depth":83,"text":67},{"id":143,"depth":83,"text":144},{"id":191,"depth":83,"text":192,"children":1268},[1269],{"id":330,"depth":89,"text":331},{"id":361,"depth":83,"text":362,"children":1271},[1272],{"id":417,"depth":89,"text":418},{"id":455,"depth":83,"text":456},{"id":502,"depth":83,"text":503},{"id":550,"depth":83,"text":551},{"id":595,"depth":83,"text":596},{"id":624,"depth":83,"text":625},{"id":686,"depth":83,"text":687},{"id":746,"depth":83,"text":747},{"id":818,"depth":83,"text":819},{"id":899,"depth":83,"text":900,"children":1282},[1283,1284,1285,1286],{"id":903,"depth":89,"text":904},{"id":936,"depth":89,"text":937},{"id":996,"depth":89,"text":997},{"id":1017,"depth":89,"text":1018},{"id":1065,"depth":83,"text":1066},"markdown-guides","2026-04-20","Learn every type of Markdown link: inline, reference, anchor, relative, email, and image links. Covers GitHub, Obsidian, and common pitfalls with examples.","md","\u002Fimages\u002Fblog\u002Fblog5",{},false,"\u002Fen\u002Fblog\u002Fhow-to-create-links-in-markdown",{"title":5,"description":1290},"en\u002Fblog\u002F5.how-to-create-links-in-markdown",null,"markdown-links-guide","J4DHUysHikHsAloS73ayPqgenOo4LM1HBrSGmneVTjk","\u003Cp>\u003Cspan data-fude-source-start=\"1\" data-fude-source-end=\"330\">Links are one of the first things you learn in Markdown, and one of the last things you fully master. The basic hyperlink syntax takes five seconds. But then you need to link to a section within the same page, to a local file, to an email address, or to open a URL in a new tab — and suddenly the five-second syntax isn't enough.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"332\" data-fude-source-end=\"433\">This guide covers every type of Markdown link, from the basics to the edge cases that trip people up.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"438\" data-fude-source-end=\"450\">Inline links\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"452\" data-fude-source-end=\"534\">The standard Markdown link. Square brackets for the text, parentheses for the URL.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"548\" data-fude-code-block-end=\"571\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"548\" data-fude-code-block-end=\"571\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Fude\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](https:\u002F\u002Ffude.md)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"577\" data-fude-source-end=\"644\">This renders as a clickable hyperlink: the text \"Fude\" pointing to \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"644\" data-fude-source-end=\"661\">https:\u002F\u002Ffude.md\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"661\" data-fude-source-end=\"662\">.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"664\" data-fude-source-end=\"729\">You can add an optional title that appears as a tooltip on hover:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"743\" data-fude-code-block-end=\"807\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"743\" data-fude-code-block-end=\"807\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Fude\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](https:\u002F\u002Ffude.md \u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string, color-mix(in srgb, var(--color-accent-primary) 78%, var(--color-code-text) 22%))\">A Markdown viewer for all your devices\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"813\" data-fude-source-end=\"1051\">The title goes inside quotes, after the URL, still inside the parentheses. Most renderers show it as a browser tooltip. But don't rely on it as an accessibility solution — support is inconsistent across devices and assistive technologies.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"1056\" data-fude-source-end=\"1071\">Reference links\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"1073\" data-fude-source-end=\"1200\">When you use the same URL multiple times, or when long URLs make your text hard to read, reference links are the better option.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"1214\" data-fude-code-block-end=\"1413\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"1214\" data-fude-code-block-end=\"1413\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">I use [\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Fude\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">][fude] to read Markdown on all my devices.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">For syntax questions, I check the [\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">CommonMark spec\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">][commonmark].\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[fude]\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\"> https:\u002F\u002Ffude.md\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string, color-mix(in srgb, var(--color-accent-primary) 78%, var(--color-code-text) 22%))\">Markdown viewer\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[commonmark]\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\"> https:\u002F\u002Fcommonmark.org\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"1419\" data-fude-source-end=\"1456\">The link definitions (the lines with \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"1456\" data-fude-source-end=\"1470\">[label]: URL\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"1470\" data-fude-source-end=\"1616\">) can be placed anywhere in the file — top, bottom, or grouped right after the paragraph that uses them. They don't appear in the rendered output.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"1618\" data-fude-source-end=\"1669\">You can also use the link text itself as the label:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"1683\" data-fude-code-block-end=\"1762\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"1683\" data-fude-code-block-end=\"1762\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">Check out [\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">CommonMark\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">] for the full spec.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[CommonMark]\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\"> https:\u002F\u002Fcommonmark.org\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"1768\" data-fude-source-end=\"1902\">This is called an implicit reference link. It's clean, but only works when the link text matches the label exactly (case-insensitive).\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"1904\" data-fude-source-end=\"2090\">Reference links are especially useful in long documents like READMEs. They keep the prose readable and the URLs easy to update — change it once, and every reference picks up the new URL.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"2095\" data-fude-source-end=\"2104\">Autolinks\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"2106\" data-fude-source-end=\"2191\">If you just want to display a raw URL as a clickable link, wrap it in angle brackets:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"2205\" data-fude-code-block-end=\"2240\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"2205\" data-fude-code-block-end=\"2240\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">&#x3C;\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">https:\u002F\u002Ffude.md\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">&#x3C;\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string-expression)\">contact@fude.md\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"2246\" data-fude-source-end=\"2331\">Both render as clickable links. The first one links to the URL, the second creates a \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"2331\" data-fude-source-end=\"2340\">mailto:\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"2340\" data-fude-source-end=\"2346\"> link.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"2348\" data-fude-source-end=\"2446\">In GitHub Flavored Markdown (GFM), bare URLs are automatically linked even without angle brackets:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"2460\" data-fude-code-block-end=\"2496\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"2460\" data-fude-code-block-end=\"2496\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">Visit https:\u002F\u002Ffude.md for more info.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"2502\" data-fude-source-end=\"2638\">But this behavior isn't universal. CommonMark doesn't auto-link bare URLs. If you want your Markdown to work everywhere, use either the \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"2638\" data-fude-source-end=\"2651\">[text](url)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"2651\" data-fude-source-end=\"2677\"> syntax or angle brackets.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"2682\" data-fude-source-end=\"2714\">Links to sections (anchor links)\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"2716\" data-fude-source-end=\"2869\">Linking to a heading within the same document is one of the most common needs — and one of the most confusing, because the behavior varies between tools.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"2871\" data-fude-source-end=\"2890\">The general syntax:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"2904\" data-fude-code-block-end=\"2927\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"2904\" data-fude-code-block-end=\"2927\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Jump to the FAQ\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](#faq)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"2933\" data-fude-source-end=\"2937\">The \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"2937\" data-fude-source-end=\"2943\">#faq\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"2943\" data-fude-source-end=\"3074\"> part is the anchor. It matches a heading in the same document. The question is: how is the anchor generated from the heading text?\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"3076\" data-fude-source-end=\"3153\">The rules for most renderers (GitHub, Obsidian, most static site generators):\u003C\u002Fspan>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cspan data-fude-source-start=\"3158\" data-fude-source-end=\"3191\">Convert the heading to lowercase.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"3195\" data-fude-source-end=\"3223\">Replace spaces with hyphens.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"3227\" data-fude-source-end=\"3263\">Remove punctuation (except hyphens).\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"3267\" data-fude-source-end=\"3307\">If there are duplicate headings, append \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"3307\" data-fude-source-end=\"3311\">-1\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"3311\" data-fude-source-end=\"3313\">, \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"3313\" data-fude-source-end=\"3317\">-2\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"3317\" data-fude-source-end=\"3323\">, etc.\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cspan data-fude-source-start=\"3325\" data-fude-source-end=\"3334\">Examples:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>\u003Cspan data-fude-source-start=\"3338\" data-fude-source-end=\"3345\">Heading\u003C\u002Fspan>\u003C\u002Fth>\n\u003Cth>\u003Cspan data-fude-source-start=\"3348\" data-fude-source-end=\"3354\">Anchor\u003C\u002Fspan>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>\u003Cspan data-fude-source-start=\"3373\" data-fude-source-end=\"3393\">## Getting Started\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>\u003Cspan data-fude-source-start=\"3396\" data-fude-source-end=\"3414\">#getting-started\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>\u003Cspan data-fude-source-start=\"3419\" data-fude-source-end=\"3435\">## What's New?\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>\u003Cspan data-fude-source-start=\"3438\" data-fude-source-end=\"3450\">#whats-new\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>\u003Cspan data-fude-source-start=\"3455\" data-fude-source-end=\"3463\">## FAQ\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>\u003Cspan data-fude-source-start=\"3466\" data-fude-source-end=\"3472\">#faq\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>\u003Cspan data-fude-source-start=\"3477\" data-fude-source-end=\"3500\">## v2.0 Release Notes\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>\u003Cspan data-fude-source-start=\"3503\" data-fude-source-end=\"3523\">#v20-release-notes\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>\u003Cspan data-fude-source-start=\"3527\" data-fude-source-end=\"3542\">A heading like \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"3542\" data-fude-source-end=\"3562\">## C++ Setup Guide\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"3562\" data-fude-source-end=\"3571\"> becomes \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"3571\" data-fude-source-end=\"3587\">#c-setup-guide\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"3587\" data-fude-source-end=\"3603\"> on GitHub (the \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"3603\" data-fude-source-end=\"3606\">+\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"3606\" data-fude-source-end=\"3732\"> signs are stripped). But in Obsidian, the behavior may differ slightly. Always test your anchor links in the target renderer.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>\u003Cspan data-fude-source-start=\"3738\" data-fude-source-end=\"3774\">Linking to a section in another file\u003C\u002Fspan>\u003C\u002Fh3>\n\u003Cp>\u003Cspan data-fude-source-start=\"3776\" data-fude-source-end=\"3828\">This works in GitHub and most documentation systems:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"3842\" data-fude-code-block-end=\"3887\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"3842\" data-fude-code-block-end=\"3887\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Installation steps\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](.\u002Fsetup.md#installation)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"3893\" data-fude-source-end=\"3930\">The path points to the file, and the \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"3930\" data-fude-source-end=\"3933\">#\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"3933\" data-fude-source-end=\"4013\"> fragment points to the heading within that file. Relative paths (starting with \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"4013\" data-fude-source-end=\"4017\">.\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"4017\" data-fude-source-end=\"4021\"> or \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"4021\" data-fude-source-end=\"4026\">..\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"4026\" data-fude-source-end=\"4057\">) are the most portable option.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"4062\" data-fude-source-end=\"4076\">Relative links\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"4078\" data-fude-source-end=\"4160\">Relative links point to other files in the same project, without using a full URL.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"4174\" data-fude-code-block-end=\"4285\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"4174\" data-fude-code-block-end=\"4285\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Read the changelog\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](.\u002FCHANGELOG.md)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Go back to the main page\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](..\u002FREADME.md)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">See the license\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](.\u002Fdocs\u002FLICENSE)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"4291\" data-fude-source-end=\"4301\">The rules:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u003Cspan data-fude-source-start=\"4305\" data-fude-source-end=\"4309\">.\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"4309\" data-fude-source-end=\"4333\"> means \"same directory.\"\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u003Cspan data-fude-source-start=\"4336\" data-fude-source-end=\"4341\">..\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"4341\" data-fude-source-end=\"4367\"> means \"parent directory.\"\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"4370\" data-fude-source-end=\"4392\">No prefix also works (\u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"4392\" data-fude-source-end=\"4406\">CHANGELOG.md\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"4406\" data-fude-source-end=\"4413\">), but \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"4413\" data-fude-source-end=\"4417\">.\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"4417\" data-fude-source-end=\"4444\"> makes the intent explicit.\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cspan data-fude-source-start=\"4446\" data-fude-source-end=\"4650\">Relative links are essential in GitHub repositories. They work in READMEs, wikis, and rendered Markdown files. They also make your docs portable — if someone clones the repo, the links still work locally.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>\u003Cspan data-fude-source-start=\"4656\" data-fude-source-end=\"4673\">Paths with spaces\u003C\u002Fspan>\u003C\u002Fh3>\n\u003Cp>\u003Cspan data-fude-source-start=\"4675\" data-fude-source-end=\"4732\">If a file or folder name contains spaces, encode them as \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"4732\" data-fude-source-end=\"4737\">%20\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"4737\" data-fude-source-end=\"4738\">:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"4752\" data-fude-code-block-end=\"4793\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"4752\" data-fude-code-block-end=\"4793\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Design doc\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](.\u002Fdocs\u002Fdesign%20document.md)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"4799\" data-fude-source-end=\"4858\">Or wrap the URL in angle brackets (less common, but valid):\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"4872\" data-fude-code-block-end=\"4913\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"4872\" data-fude-code-block-end=\"4913\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Design doc\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](&#x3C;.\u002Fdocs\u002Fdesign document.md>)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"4919\" data-fude-source-end=\"4950\">Both approaches work. I prefer \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"4950\" data-fude-source-end=\"4955\">%20\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"4955\" data-fude-source-end=\"5029\"> because it's more explicit and avoids surprises across different parsers.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"5034\" data-fude-source-end=\"5054\">Links to local files\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"5056\" data-fude-source-end=\"5135\">Linking to a file on your local machine works in some renderers but not others.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"5149\" data-fude-code-block-end=\"5204\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"5149\" data-fude-code-block-end=\"5204\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Open my notes\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](file:\u002F\u002F\u002FUsers\u002Falice\u002FDocuments\u002Fnotes.md)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"5210\" data-fude-source-end=\"5214\">The \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"5214\" data-fude-source-end=\"5223\">file:\u002F\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"5223\" data-fude-source-end=\"5418\"> protocol is supported in some desktop Markdown apps, but browsers and GitHub strip it for security reasons. It's useful in personal notes (Obsidian, Fude, VS Code), but not for shared documents.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"5420\" data-fude-source-end=\"5522\">In Obsidian specifically, you can link to local files using the wiki-link syntax or standard Markdown:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"5536\" data-fude-code-block-end=\"5571\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"5536\" data-fude-code-block-end=\"5571\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">My note\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](.\u002Fmy-note.md)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">my-note\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">]]\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"5577\" data-fude-source-end=\"5599\">The wiki-link syntax (\u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"5599\" data-fude-source-end=\"5608\">[[...]]\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"5608\" data-fude-source-end=\"5735\">) is Obsidian-specific and won't render in standard Markdown renderers. If portability matters, stick with the standard syntax.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"5740\" data-fude-source-end=\"5751\">Email links\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"5753\" data-fude-source-end=\"5795\">Two ways to create a clickable email link:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"5809\" data-fude-code-block-end=\"5877\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"5809\" data-fude-code-block-end=\"5877\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">&#x3C;\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string-expression)\">contact@example.com\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[Send us an email](mailto:contact@example.com)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"5883\" data-fude-source-end=\"5915\">The first form auto-generates a \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"5915\" data-fude-source-end=\"5924\">mailto:\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"5924\" data-fude-source-end=\"5975\"> link. The second lets you customize the link text.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"5977\" data-fude-source-end=\"6016\">You can also pre-fill the subject line:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"6030\" data-fude-code-block-end=\"6090\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"6030\" data-fude-code-block-end=\"6090\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Report a bug\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](mailto:bugs@example.com?subject=Bug%20Report)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"6096\" data-fude-source-end=\"6100\">The \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"6100\" data-fude-source-end=\"6111\">?subject=\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"6111\" data-fude-source-end=\"6180\"> parameter works in most email clients. Spaces need to be encoded as \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"6180\" data-fude-source-end=\"6185\">%20\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"6185\" data-fude-source-end=\"6186\">.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"6191\" data-fude-source-end=\"6202\">Image links\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"6204\" data-fude-source-end=\"6343\">In Markdown, an image is not a link by default — it just embeds the image. To make an image clickable, wrap the image syntax inside a link:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"6357\" data-fude-code-block-end=\"6399\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"6357\" data-fude-code-block-end=\"6399\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">![Alt text]\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">(.\u002Flogo.png)\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](https:\u002F\u002Ffude.md)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"6405\" data-fude-source-end=\"6422\">Breaking it down:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u003Cspan data-fude-source-start=\"6426\" data-fude-source-end=\"6451\">![Alt text](.\u002Flogo.png)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"6451\" data-fude-source-end=\"6465\"> is the image.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u003Cspan data-fude-source-start=\"6468\" data-fude-source-end=\"6492\">[...](https:\u002F\u002Ffude.md)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"6492\" data-fude-source-end=\"6524\"> is the link wrapping the image.\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cspan data-fude-source-start=\"6526\" data-fude-source-end=\"6630\">The result: clicking the image navigates to the URL. This is commonly used for badges in GitHub READMEs:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"6644\" data-fude-code-block-end=\"6749\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"6644\" data-fude-code-block-end=\"6749\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">![Build Status]\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">(https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-green)\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](https:\u002F\u002Fgithub.com\u002Fuser\u002Frepo\u002Factions)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>\u003Cspan data-fude-source-start=\"6758\" data-fude-source-end=\"6784\">Opening links in a new tab\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"6786\" data-fude-source-end=\"6822\">Standard Markdown has no syntax for \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"6822\" data-fude-source-end=\"6839\">target=\"_blank\"\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"6839\" data-fude-source-end=\"6913\">. There's no way to force a link to open in a new tab using pure Markdown.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"6915\" data-fude-source-end=\"6959\">If your renderer supports HTML, you can use:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"6973\" data-fude-code-block-end=\"7028\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"6973\" data-fude-code-block-end=\"7028\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">&#x3C;\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string-expression)\">a\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-function, color-mix(in srgb, var(--color-accent-secondary) 62%, var(--color-code-text) 38%))\"> href\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">=\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string-expression)\">\"https:\u002F\u002Ffude.md\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-function, color-mix(in srgb, var(--color-accent-secondary) 62%, var(--color-code-text) 38%))\"> target\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">=\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string-expression)\">\"_blank\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">>Open Fude&#x3C;\u002F\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string-expression)\">a\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"7034\" data-fude-source-end=\"7163\">This works on GitHub (partially — GitHub strips some attributes), in most static site generators, and in Obsidian's reading mode.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"7165\" data-fude-source-end=\"7379\">Some static site generators (Hugo, Astro, Nuxt Content) let you configure this globally — all external links open in a new tab by default, without needing HTML in your content. Check your framework's documentation.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"7384\" data-fude-source-end=\"7399\">Links in GitHub\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"7401\" data-fude-source-end=\"7482\">GitHub Flavored Markdown supports all the link types above, with a few specifics:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"7488\" data-fude-source-end=\"7500\">Auto-linking\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"7502\" data-fude-source-end=\"7554\">: bare URLs become clickable without angle brackets.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"7559\" data-fude-source-end=\"7578\">Issue\u002FPR references\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"7580\" data-fude-source-end=\"7607\">: in GitHub conversations, \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"7607\" data-fude-source-end=\"7613\">#123\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"7613\" data-fude-source-end=\"7681\"> automatically links to issue or pull request 123 in the same repo. \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"7681\" data-fude-source-end=\"7696\">user\u002Frepo#123\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"7696\" data-fude-source-end=\"7789\"> links across repos. These shorthand references are not created in repository files or wikis.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"7794\" data-fude-source-end=\"7811\">Commit references\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"7813\" data-fude-source-end=\"7866\">: paste a commit SHA and GitHub turns it into a link.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"7871\" data-fude-source-end=\"7880\">@mentions\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"7882\" data-fude-source-end=\"7884\">: \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"7884\" data-fude-source-end=\"7895\">@username\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"7895\" data-fude-source-end=\"7922\"> links to a GitHub profile.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"7927\" data-fude-source-end=\"7941\">Relative links\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"7943\" data-fude-source-end=\"8067\">: work in READMEs, wikis, and all rendered Markdown files. GitHub resolves them relative to the file's location in the repo.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>\u003Cspan data-fude-source-start=\"8072\" data-fude-source-end=\"8081\">file:\u002F\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"8081\" data-fude-source-end=\"8087\"> links\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"8089\" data-fude-source-end=\"8129\">: stripped for security. Don't use them.\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cspan data-fude-source-start=\"8131\" data-fude-source-end=\"8224\">These auto-linking features are GitHub-specific. They won't work in other Markdown renderers.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"8229\" data-fude-source-end=\"8242\">Links in Fude\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"8244\" data-fude-source-end=\"8302\">In Fude, standard Markdown links work as you would expect:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cspan data-fude-source-start=\"8306\" data-fude-source-end=\"8319\">Inline links \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"8319\" data-fude-source-end=\"8332\">[text](url)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"8332\" data-fude-source-end=\"8378\"> and reference links render and are clickable.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"8381\" data-fude-source-end=\"8420\">Web links open in your default browser.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"8423\" data-fude-source-end=\"8526\">Relative links between Markdown files work within your document collection. Clicking a link to another \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"8526\" data-fude-source-end=\"8531\">.md\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"8531\" data-fude-source-end=\"8563\"> file opens it directly in Fude.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"8566\" data-fude-source-end=\"8638\">Anchor links to sections within the same document scroll to the heading.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"8641\" data-fude-source-end=\"8654\">Email links (\u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"8654\" data-fude-source-end=\"8663\">mailto:\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"8663\" data-fude-source-end=\"8695\">) open your default mail client.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"8698\" data-fude-source-end=\"8746\">Image links (clickable images) render correctly.\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cspan data-fude-source-start=\"8748\" data-fude-source-end=\"8774\">What Fude doesn't support:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u003Cspan data-fude-source-start=\"8778\" data-fude-source-end=\"8787\">file:\u002F\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"8787\" data-fude-source-end=\"8842\"> protocol links are not supported for security reasons.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"8845\" data-fude-source-end=\"8861\">Raw HTML links (\u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"8861\" data-fude-source-end=\"8893\">&#x3C;a href=\"...\" target=\"_blank\">\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"8893\" data-fude-source-end=\"8963\">) are not rendered as HTML — Fude focuses on standard Markdown syntax.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"8966\" data-fude-source-end=\"8978\">Wiki-links (\u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"8978\" data-fude-source-end=\"8987\">[[...]]\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"8987\" data-fude-source-end=\"9048\">) are not supported. Fude uses standard Markdown link syntax.\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>\u003Cspan data-fude-source-start=\"9053\" data-fude-source-end=\"9070\">Links in Obsidian\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"9072\" data-fude-source-end=\"9138\">Obsidian supports standard Markdown links and adds its own syntax:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"9144\" data-fude-source-end=\"9154\">Wiki-links\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"9156\" data-fude-source-end=\"9158\">: \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"9158\" data-fude-source-end=\"9173\">[[note-name]]\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"9173\" data-fude-source-end=\"9211\"> links to another note in your vault. \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"9211\" data-fude-source-end=\"9239\">[[note-name|display text]]\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"9239\" data-fude-source-end=\"9276\"> lets you customize the visible text.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"9281\" data-fude-source-end=\"9304\">Standard Markdown links\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"9306\" data-fude-source-end=\"9308\">: \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"9308\" data-fude-source-end=\"9327\">[text](.\u002Fnote.md)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"9327\" data-fude-source-end=\"9389\"> works too. Obsidian resolves relative paths within the vault.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"9394\" data-fude-source-end=\"9407\">Section links\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"9409\" data-fude-source-end=\"9411\">: \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"9411\" data-fude-source-end=\"9434\">[[note-name#section]]\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"9434\" data-fude-source-end=\"9471\"> links to a heading in another note. \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"9471\" data-fude-source-end=\"9485\">[[#section]]\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"9485\" data-fude-source-end=\"9525\"> links to a heading in the current note.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"9530\" data-fude-source-end=\"9546\">Block references\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"9548\" data-fude-source-end=\"9550\">: \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"9550\" data-fude-source-end=\"9575\">[[note-name#^block-id]]\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"9575\" data-fude-source-end=\"9656\"> links to a specific block (paragraph, list item) — an Obsidian-specific feature.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"9661\" data-fude-source-end=\"9667\">Embeds\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"9669\" data-fude-source-end=\"9671\">: \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"9671\" data-fude-source-end=\"9687\">![[note-name]]\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"9687\" data-fude-source-end=\"9767\"> embeds the content of another note inline. Not technically a link, but related.\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cspan data-fude-source-start=\"9769\" data-fude-source-end=\"9797\">The big choice in Obsidian: \u003C\u002Fspan>\u003Cstrong>\u003Cspan data-fude-source-start=\"9799\" data-fude-source-end=\"9837\">wiki-links vs. standard Markdown links\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"9839\" data-fude-source-end=\"9993\">. Wiki-links are shorter and auto-complete in the editor. Standard Markdown links are portable — they'll work if you ever move your notes to another tool.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"9995\" data-fude-source-end=\"10074\">You can switch between the two in Settings > Files and Links > \"Use Wikilinks.\"\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"10079\" data-fude-source-end=\"10106\">When to use which link type\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cp>\u003Cspan data-fude-source-start=\"10108\" data-fude-source-end=\"10181\">With so many options, it's easy to overthink it. Here's a decision guide:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"10187\" data-fude-source-end=\"10218\">Linking to an external website?\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"10220\" data-fude-source-end=\"10241\"> Use an inline link: \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"10241\" data-fude-source-end=\"10254\">[text](url)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"10254\" data-fude-source-end=\"10286\">. It's the default for a reason.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"10291\" data-fude-source-end=\"10336\">Same URL used multiple times in one document?\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"10338\" data-fude-source-end=\"10408\"> Use reference links. One place to update, zero risk of inconsistency.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"10413\" data-fude-source-end=\"10457\">Linking to another section on the same page?\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"10459\" data-fude-source-end=\"10480\"> Use an anchor link: \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"10480\" data-fude-source-end=\"10501\">[text](#heading-id)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"10501\" data-fude-source-end=\"10502\">.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"10507\" data-fude-source-end=\"10559\">Linking to another file in the same repo or project?\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"10561\" data-fude-source-end=\"10583\"> Use a relative link: \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"10583\" data-fude-source-end=\"10608\">[text](.\u002Fother-file.md)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"10608\" data-fude-source-end=\"10663\">. Avoid absolute URLs — they break when the repo moves.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"10668\" data-fude-source-end=\"10696\">Just want to show a raw URL?\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"10698\" data-fude-source-end=\"10726\"> Wrap it in angle brackets: \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"10726\" data-fude-source-end=\"10749\">&#x3C;https:\u002F\u002Fexample.com>\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"10749\" data-fude-source-end=\"10770\">. Clean and portable.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"10775\" data-fude-source-end=\"10801\">Making an image clickable?\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"10803\" data-fude-source-end=\"10841\"> Wrap the image syntax inside a link: \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"10841\" data-fude-source-end=\"10865\">[![alt](img.png)](url)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"10865\" data-fude-source-end=\"10866\">.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Cspan data-fude-source-start=\"10871\" data-fude-source-end=\"10878\">Need a \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"10878\" data-fude-source-end=\"10887\">mailto:\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"10887\" data-fude-source-end=\"10893\"> link?\u003C\u002Fspan>\u003C\u002Fstrong>\u003Cspan data-fude-source-start=\"10895\" data-fude-source-end=\"10903\"> Either \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"10903\" data-fude-source-end=\"10924\">&#x3C;email@example.com>\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"10924\" data-fude-source-end=\"10928\"> or \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"10928\" data-fude-source-end=\"10962\">[text](mailto:email@example.com)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"10962\" data-fude-source-end=\"11013\"> — the second gives you control over the link text.\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cspan data-fude-source-start=\"11015\" data-fude-source-end=\"11080\">When in doubt, start with an inline link. It covers 80% of cases.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"11085\" data-fude-source-end=\"11110\">Debugging common problems\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Ch3>\u003Cspan data-fude-source-start=\"11116\" data-fude-source-end=\"11145\">\"My link shows as plain text\"\u003C\u002Fspan>\u003C\u002Fh3>\n\u003Cp>\u003Cspan data-fude-source-start=\"11147\" data-fude-source-end=\"11215\">Most likely cause: a space between the brackets and the parentheses.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"11229\" data-fude-code-block-end=\"11301\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"11229\" data-fude-code-block-end=\"11301\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">text\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">] (url)   ← broken (space between ] and ()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">text\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](url)\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">    ← correct\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"11307\" data-fude-source-end=\"11325\">Markdown requires \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"11325\" data-fude-source-end=\"11328\">]\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"11328\" data-fude-source-end=\"11333\"> and \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"11333\" data-fude-source-end=\"11336\">(\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"11336\" data-fude-source-end=\"11364\"> to be immediately adjacent.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>\u003Cspan data-fude-source-start=\"11370\" data-fude-source-end=\"11418\">\"The URL breaks because it contains parentheses\"\u003C\u002Fspan>\u003C\u002Fh3>\n\u003Cp>\u003Cspan data-fude-source-start=\"11420\" data-fude-source-end=\"11500\">URLs with parentheses — common in Wikipedia — break the Markdown parser because \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"11500\" data-fude-source-end=\"11503\">)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"11503\" data-fude-source-end=\"11520\"> closes the link.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"11522\" data-fude-source-end=\"11550\">Fix: encode the parentheses.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"11564\" data-fude-code-block-end=\"11628\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"11564\" data-fude-code-block-end=\"11628\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Article\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown_%28language%29)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"11634\" data-fude-source-end=\"11642\">Replace \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"11642\" data-fude-source-end=\"11645\">(\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"11645\" data-fude-source-end=\"11651\"> with \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"11651\" data-fude-source-end=\"11656\">%28\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"11656\" data-fude-source-end=\"11661\"> and \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"11661\" data-fude-source-end=\"11664\">)\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"11664\" data-fude-source-end=\"11670\"> with \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"11670\" data-fude-source-end=\"11675\">%29\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"11675\" data-fude-source-end=\"11713\">. Alternatively, use a reference link:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"11727\" data-fude-code-block-end=\"11807\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"11727\" data-fude-code-block-end=\"11807\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">Article\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">][wiki-md]\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[wiki-md]\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\"> https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown_\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">(\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string, color-mix(in srgb, var(--color-accent-primary) 78%, var(--color-code-text) 22%))\">language\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"11813\" data-fude-source-end=\"11888\">Reference links handle parentheses in URLs more gracefully in most parsers.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>\u003Cspan data-fude-source-start=\"11894\" data-fude-source-end=\"11923\">\"My anchor link doesn't work\"\u003C\u002Fspan>\u003C\u002Fh3>\n\u003Cp>\u003Cspan data-fude-source-start=\"11925\" data-fude-source-end=\"11944\">Check three things:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cspan data-fude-source-start=\"11949\" data-fude-source-end=\"12024\">Is the heading ID generated correctly? (lowercase, hyphens, no punctuation)\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"12028\" data-fude-source-end=\"12098\">Is there a duplicate heading with the same text? (the second one gets \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"12098\" data-fude-source-end=\"12102\">-1\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"12102\" data-fude-source-end=\"12112\"> appended)\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli>\u003Cspan data-fude-source-start=\"12116\" data-fude-source-end=\"12251\">Are you testing in the same renderer where it will be published? (GitHub, Obsidian, and Hugo all generate anchors slightly differently)\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>\u003Cspan data-fude-source-start=\"12257\" data-fude-source-end=\"12310\">\"My relative link works locally but breaks on GitHub\"\u003C\u002Fspan>\u003C\u002Fh3>\n\u003Cp>\u003Cspan data-fude-source-start=\"12312\" data-fude-source-end=\"12437\">Common cause: the link uses a path relative to the project root, but Markdown resolves paths relative to the file's location.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"12439\" data-fude-source-end=\"12458\">If your file is at \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"12458\" data-fude-source-end=\"12473\">docs\u002Fguide.md\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"12473\" data-fude-source-end=\"12498\"> and you want to link to \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"12498\" data-fude-source-end=\"12509\">README.md\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"12509\" data-fude-source-end=\"12522\"> at the root:\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"12536\" data-fude-code-block-end=\"12706\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"12536\" data-fude-code-block-end=\"12706\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">README\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](..\u002FREADME.md)\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">    ← correct (go up one directory)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">README\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](.\u002FREADME.md)\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">     ← broken (looks in docs\u002F)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">README\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](\u002FREADME.md)\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">      ← works on some platforms, not all\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cspan data-fude-source-start=\"12712\" data-fude-source-end=\"12716\">Use \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"12716\" data-fude-source-end=\"12721\">..\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"12721\" data-fude-source-end=\"12752\"> to navigate up. Avoid leading \u003C\u002Fspan>\u003Ccode>\u003Cspan data-fude-source-start=\"12752\" data-fude-source-end=\"12755\">\u002F\u003C\u002Fspan>\u003C\u002Fcode>\u003Cspan data-fude-source-start=\"12755\" data-fude-source-end=\"12780\"> for maximum portability.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch2>\u003Cspan data-fude-source-start=\"12785\" data-fude-source-end=\"12800\">Quick reference\u003C\u002Fspan>\u003C\u002Fh2>\n\u003Cpre style=\"background-color:var(--fude-code-background, var(--color-code-bg));color:var(--fude-code-foreground, var(--color-code-text))\" tabindex=\"0\" class=\"shiki fude-code-theme fude-code-block\" data-language=\"markdown\" data-fude-code-block-start=\"12814\" data-fude-code-block-end=\"13325\">\u003Ccode class=\"language-markdown\" data-language=\"markdown\" data-fude-code-block-start=\"12814\" data-fude-code-block-end=\"13325\">\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\"># Inline link\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">text\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](https:\u002F\u002Fexample.com)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-token-link)\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">text\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">](https:\u002F\u002Fexample.com \u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string, color-mix(in srgb, var(--color-accent-primary) 78%, var(--color-code-text) 22%))\">title\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\"># Reference link\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">text\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">][label]\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[label]\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\"> https:\u002F\u002Fexample.com\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\"># Autolink\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">&#x3C;\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-link)\">https:\u002F\u002Fexample.com\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">&#x3C;\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string-expression)\">user@example.com\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\"># Anchor (same page)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[Go to section](#section-name)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\"># Relative link\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[Other file](.\u002Fother-file.md)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[Section in other file](.\u002Fother-file.md#section)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\"># Email\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[Email us](mailto:hi@example.com)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\"># Image link\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">[![Alt](image.png)](https:\u002F\u002Fexample.com)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\"># New tab (HTML)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">&#x3C;\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string-expression)\">a\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-function, color-mix(in srgb, var(--color-accent-secondary) 62%, var(--color-code-text) 38%))\"> href\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">=\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string-expression)\">\"https:\u002F\u002Fexample.com\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-function, color-mix(in srgb, var(--color-accent-secondary) 62%, var(--color-code-text) 38%))\"> target\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-keyword, color-mix(in srgb, var(--color-accent-primary) 68%, var(--color-code-text) 32%))\">=\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string-expression)\">\"_blank\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">>Link&#x3C;\u002F\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-token-string-expression)\">a\u003C\u002Fspan>\u003Cspan style=\"color:var(--fude-code-foreground, var(--color-code-text))\">>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Chr>\n\u003Cp>\u003Cspan data-fude-source-start=\"13336\" data-fude-source-end=\"13554\">Markdown links are deceptively simple. The basic syntax covers 80% of cases, but the remaining 20% — anchor links, relative paths, URLs with special characters, tool-specific behaviors — is where most people get stuck.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"13556\" data-fude-source-end=\"13590\">Now you have the complete picture.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"13592\" data-fude-source-end=\"13639\">For other Markdown guides, see our articles on \u003C\u002Fspan>\u003Ca href=\"\u002Fen\u002Fblog\u002Fmarkdown-table-complete-guide-with-examples\" data-fude-link-kind=\"unsupported\">\u003Cspan data-fude-source-start=\"13640\" data-fude-source-end=\"13646\">tables\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan data-fude-source-start=\"13701\" data-fude-source-end=\"13703\">, \u003C\u002Fspan>\u003Ca href=\"\u002Fen\u002Fblog\u002Fhow-to-add-horizontal-line-markdown\" data-fude-link-kind=\"unsupported\">\u003Cspan data-fude-source-start=\"13704\" data-fude-source-end=\"13720\">horizontal lines\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan data-fude-source-start=\"13767\" data-fude-source-end=\"13773\">, and \u003C\u002Fspan>\u003Ca href=\"\u002Fen\u002Fblog\u002Fwhy-ai-responds-in-markdown\" data-fude-link-kind=\"unsupported\">\u003Cspan data-fude-source-start=\"13774\" data-fude-source-end=\"13801\">why AI responds in Markdown\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan data-fude-source-start=\"13840\" data-fude-source-end=\"13841\">.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"13843\" data-fude-source-end=\"13944\">If you're looking for a Markdown viewer that handles links cleanly across all your devices, try Fude.\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cspan data-fude-source-start=\"13946\" data-fude-source-end=\"13948\">📌 \u003C\u002Fspan>\u003Ca href=\"\u002Fen#download\" data-fude-link-kind=\"unsupported\">\u003Cspan data-fude-source-start=\"13949\" data-fude-source-end=\"13962\">Download Fude\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fp>","\nLinks are one of the first things you learn in Markdown, and one of the last things you fully master. The basic hyperlink syntax takes five seconds. But then you need to link to a section within the same page, to a local file, to an email address, or to open a URL in a new tab — and suddenly the five-second syntax isn't enough.\n\nThis guide covers every type of Markdown link, from the basics to the edge cases that trip people up.\n\n## Inline links\n\nThe standard Markdown link. Square brackets for the text, parentheses for the URL.\n\n```markdown\n[Fude](https:\u002F\u002Ffude.md)\n```\n\nThis renders as a clickable hyperlink: the text \"Fude\" pointing to `https:\u002F\u002Ffude.md`.\n\nYou can add an optional title that appears as a tooltip on hover:\n\n```markdown\n[Fude](https:\u002F\u002Ffude.md \"A Markdown viewer for all your devices\")\n```\n\nThe title goes inside quotes, after the URL, still inside the parentheses. Most renderers show it as a browser tooltip. But don't rely on it as an accessibility solution — support is inconsistent across devices and assistive technologies.\n\n## Reference links\n\nWhen you use the same URL multiple times, or when long URLs make your text hard to read, reference links are the better option.\n\n```markdown\nI use [Fude][fude] to read Markdown on all my devices.\nFor syntax questions, I check the [CommonMark spec][commonmark].\n\n[fude]: https:\u002F\u002Ffude.md \"Markdown viewer\"\n[commonmark]: https:\u002F\u002Fcommonmark.org\n```\n\nThe link definitions (the lines with `[label]: URL`) can be placed anywhere in the file — top, bottom, or grouped right after the paragraph that uses them. They don't appear in the rendered output.\n\nYou can also use the link text itself as the label:\n\n```markdown\nCheck out [CommonMark] for the full spec.\n\n[CommonMark]: https:\u002F\u002Fcommonmark.org\n```\n\nThis is called an implicit reference link. It's clean, but only works when the link text matches the label exactly (case-insensitive).\n\nReference links are especially useful in long documents like READMEs. They keep the prose readable and the URLs easy to update — change it once, and every reference picks up the new URL.\n\n## Autolinks\n\nIf you just want to display a raw URL as a clickable link, wrap it in angle brackets:\n\n```markdown\n\u003Chttps:\u002F\u002Ffude.md>\n\u003Ccontact@fude.md>\n```\n\nBoth render as clickable links. The first one links to the URL, the second creates a `mailto:` link.\n\nIn GitHub Flavored Markdown (GFM), bare URLs are automatically linked even without angle brackets:\n\n```markdown\nVisit https:\u002F\u002Ffude.md for more info.\n```\n\nBut this behavior isn't universal. CommonMark doesn't auto-link bare URLs. If you want your Markdown to work everywhere, use either the `[text](url)` syntax or angle brackets.\n\n## Links to sections (anchor links)\n\nLinking to a heading within the same document is one of the most common needs — and one of the most confusing, because the behavior varies between tools.\n\nThe general syntax:\n\n```markdown\n[Jump to the FAQ](#faq)\n```\n\nThe `#faq` part is the anchor. It matches a heading in the same document. The question is: how is the anchor generated from the heading text?\n\nThe rules for most renderers (GitHub, Obsidian, most static site generators):\n\n1. Convert the heading to lowercase.\n2. Replace spaces with hyphens.\n3. Remove punctuation (except hyphens).\n4. If there are duplicate headings, append `-1`, `-2`, etc.\n\nExamples:\n\n| Heading | Anchor |\n| --- | --- |\n| `## Getting Started` | `#getting-started` |\n| `## What's New?` | `#whats-new` |\n| `## FAQ` | `#faq` |\n| `## v2.0 Release Notes` | `#v20-release-notes` |\n\nA heading like `## C++ Setup Guide` becomes `#c-setup-guide` on GitHub (the `+` signs are stripped). But in Obsidian, the behavior may differ slightly. Always test your anchor links in the target renderer.\n\n### Linking to a section in another file\n\nThis works in GitHub and most documentation systems:\n\n```markdown\n[Installation steps](.\u002Fsetup.md#installation)\n```\n\nThe path points to the file, and the `#` fragment points to the heading within that file. Relative paths (starting with `.\u002F` or `..\u002F`) are the most portable option.\n\n## Relative links\n\nRelative links point to other files in the same project, without using a full URL.\n\n```markdown\n[Read the changelog](.\u002FCHANGELOG.md)\n[Go back to the main page](..\u002FREADME.md)\n[See the license](.\u002Fdocs\u002FLICENSE)\n```\n\nThe rules:\n\n- `.\u002F` means \"same directory.\"\n- `..\u002F` means \"parent directory.\"\n- No prefix also works (`CHANGELOG.md`), but `.\u002F` makes the intent explicit.\n\nRelative links are essential in GitHub repositories. They work in READMEs, wikis, and rendered Markdown files. They also make your docs portable — if someone clones the repo, the links still work locally.\n\n### Paths with spaces\n\nIf a file or folder name contains spaces, encode them as `%20`:\n\n```markdown\n[Design doc](.\u002Fdocs\u002Fdesign%20document.md)\n```\n\nOr wrap the URL in angle brackets (less common, but valid):\n\n```markdown\n[Design doc](\u003C.\u002Fdocs\u002Fdesign document.md>)\n```\n\nBoth approaches work. I prefer `%20` because it's more explicit and avoids surprises across different parsers.\n\n## Links to local files\n\nLinking to a file on your local machine works in some renderers but not others.\n\n```markdown\n[Open my notes](file:\u002F\u002F\u002FUsers\u002Falice\u002FDocuments\u002Fnotes.md)\n```\n\nThe `file:\u002F\u002F` protocol is supported in some desktop Markdown apps, but browsers and GitHub strip it for security reasons. It's useful in personal notes (Obsidian, Fude, VS Code), but not for shared documents.\n\nIn Obsidian specifically, you can link to local files using the wiki-link syntax or standard Markdown:\n\n```markdown\n[My note](.\u002Fmy-note.md)\n[[my-note]]\n```\n\nThe wiki-link syntax (`[[...]]`) is Obsidian-specific and won't render in standard Markdown renderers. If portability matters, stick with the standard syntax.\n\n## Email links\n\nTwo ways to create a clickable email link:\n\n```markdown\n\u003Ccontact@example.com>\n[Send us an email](mailto:contact@example.com)\n```\n\nThe first form auto-generates a `mailto:` link. The second lets you customize the link text.\n\nYou can also pre-fill the subject line:\n\n```markdown\n[Report a bug](mailto:bugs@example.com?subject=Bug%20Report)\n```\n\nThe `?subject=` parameter works in most email clients. Spaces need to be encoded as `%20`.\n\n## Image links\n\nIn Markdown, an image is not a link by default — it just embeds the image. To make an image clickable, wrap the image syntax inside a link:\n\n```markdown\n[![Alt text](.\u002Flogo.png)](https:\u002F\u002Ffude.md)\n```\n\nBreaking it down:\n\n- `![Alt text](.\u002Flogo.png)` is the image.\n- `[...](https:\u002F\u002Ffude.md)` is the link wrapping the image.\n\nThe result: clicking the image navigates to the URL. This is commonly used for badges in GitHub READMEs:\n\n```markdown\n[![Build Status](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuild-passing-green)](https:\u002F\u002Fgithub.com\u002Fuser\u002Frepo\u002Factions)\n```\n\n## Opening links in a new tab\n\nStandard Markdown has no syntax for `target=\"_blank\"`. There's no way to force a link to open in a new tab using pure Markdown.\n\nIf your renderer supports HTML, you can use:\n\n```markdown\n\u003Ca href=\"https:\u002F\u002Ffude.md\" target=\"_blank\">Open Fude\u003C\u002Fa>\n```\n\nThis works on GitHub (partially — GitHub strips some attributes), in most static site generators, and in Obsidian's reading mode.\n\nSome static site generators (Hugo, Astro, Nuxt Content) let you configure this globally — all external links open in a new tab by default, without needing HTML in your content. Check your framework's documentation.\n\n## Links in GitHub\n\nGitHub Flavored Markdown supports all the link types above, with a few specifics:\n\n- **Auto-linking**: bare URLs become clickable without angle brackets.\n- **Issue\u002FPR references**: in GitHub conversations, `#123` automatically links to issue or pull request 123 in the same repo. `user\u002Frepo#123` links across repos. These shorthand references are not created in repository files or wikis.\n- **Commit references**: paste a commit SHA and GitHub turns it into a link.\n- **@mentions**: `@username` links to a GitHub profile.\n- **Relative links**: work in READMEs, wikis, and all rendered Markdown files. GitHub resolves them relative to the file's location in the repo.\n- **`file:\u002F\u002F` links**: stripped for security. Don't use them.\n\nThese auto-linking features are GitHub-specific. They won't work in other Markdown renderers.\n\n## Links in Fude\n\nIn Fude, standard Markdown links work as you would expect:\n\n- Inline links `[text](url)` and reference links render and are clickable.\n- Web links open in your default browser.\n- Relative links between Markdown files work within your document collection. Clicking a link to another `.md` file opens it directly in Fude.\n- Anchor links to sections within the same document scroll to the heading.\n- Email links (`mailto:`) open your default mail client.\n- Image links (clickable images) render correctly.\n\nWhat Fude doesn't support:\n\n- `file:\u002F\u002F` protocol links are not supported for security reasons.\n- Raw HTML links (`\u003Ca href=\"...\" target=\"_blank\">`) are not rendered as HTML — Fude focuses on standard Markdown syntax.\n- Wiki-links (`[[...]]`) are not supported. Fude uses standard Markdown link syntax.\n\n## Links in Obsidian\n\nObsidian supports standard Markdown links and adds its own syntax:\n\n- **Wiki-links**: `[[note-name]]` links to another note in your vault. `[[note-name|display text]]` lets you customize the visible text.\n- **Standard Markdown links**: `[text](.\u002Fnote.md)` works too. Obsidian resolves relative paths within the vault.\n- **Section links**: `[[note-name#section]]` links to a heading in another note. `[[#section]]` links to a heading in the current note.\n- **Block references**: `[[note-name#^block-id]]` links to a specific block (paragraph, list item) — an Obsidian-specific feature.\n- **Embeds**: `![[note-name]]` embeds the content of another note inline. Not technically a link, but related.\n\nThe big choice in Obsidian: **wiki-links vs. standard Markdown links**. Wiki-links are shorter and auto-complete in the editor. Standard Markdown links are portable — they'll work if you ever move your notes to another tool.\n\nYou can switch between the two in Settings > Files and Links > \"Use Wikilinks.\"\n\n## When to use which link type\n\nWith so many options, it's easy to overthink it. Here's a decision guide:\n\n- **Linking to an external website?** Use an inline link: `[text](url)`. It's the default for a reason.\n- **Same URL used multiple times in one document?** Use reference links. One place to update, zero risk of inconsistency.\n- **Linking to another section on the same page?** Use an anchor link: `[text](#heading-id)`.\n- **Linking to another file in the same repo or project?** Use a relative link: `[text](.\u002Fother-file.md)`. Avoid absolute URLs — they break when the repo moves.\n- **Just want to show a raw URL?** Wrap it in angle brackets: `\u003Chttps:\u002F\u002Fexample.com>`. Clean and portable.\n- **Making an image clickable?** Wrap the image syntax inside a link: `[![alt](img.png)](url)`.\n- **Need a `mailto:` link?** Either `\u003Cemail@example.com>` or `[text](mailto:email@example.com)` — the second gives you control over the link text.\n\nWhen in doubt, start with an inline link. It covers 80% of cases.\n\n## Debugging common problems\n\n### \"My link shows as plain text\"\n\nMost likely cause: a space between the brackets and the parentheses.\n\n```markdown\n[text] (url)   ← broken (space between ] and ()\n[text](url)    ← correct\n```\n\nMarkdown requires `]` and `(` to be immediately adjacent.\n\n### \"The URL breaks because it contains parentheses\"\n\nURLs with parentheses — common in Wikipedia — break the Markdown parser because `)` closes the link.\n\nFix: encode the parentheses.\n\n```markdown\n[Article](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown_%28language%29)\n```\n\nReplace `(` with `%28` and `)` with `%29`. Alternatively, use a reference link:\n\n```markdown\n[Article][wiki-md]\n\n[wiki-md]: https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMarkdown_(language)\n```\n\nReference links handle parentheses in URLs more gracefully in most parsers.\n\n### \"My anchor link doesn't work\"\n\nCheck three things:\n\n1. Is the heading ID generated correctly? (lowercase, hyphens, no punctuation)\n2. Is there a duplicate heading with the same text? (the second one gets `-1` appended)\n3. Are you testing in the same renderer where it will be published? (GitHub, Obsidian, and Hugo all generate anchors slightly differently)\n\n### \"My relative link works locally but breaks on GitHub\"\n\nCommon cause: the link uses a path relative to the project root, but Markdown resolves paths relative to the file's location.\n\nIf your file is at `docs\u002Fguide.md` and you want to link to `README.md` at the root:\n\n```markdown\n[README](..\u002FREADME.md)    ← correct (go up one directory)\n[README](.\u002FREADME.md)     ← broken (looks in docs\u002F)\n[README](\u002FREADME.md)      ← works on some platforms, not all\n```\n\nUse `..\u002F` to navigate up. Avoid leading `\u002F` for maximum portability.\n\n## Quick reference\n\n```markdown\n# Inline link\n[text](https:\u002F\u002Fexample.com)\n[text](https:\u002F\u002Fexample.com \"title\")\n\n# Reference link\n[text][label]\n[label]: https:\u002F\u002Fexample.com\n\n# Autolink\n\u003Chttps:\u002F\u002Fexample.com>\n\u003Cuser@example.com>\n\n# Anchor (same page)\n[Go to section](#section-name)\n\n# Relative link\n[Other file](.\u002Fother-file.md)\n[Section in other file](.\u002Fother-file.md#section)\n\n# Email\n[Email us](mailto:hi@example.com)\n\n# Image link\n[![Alt](image.png)](https:\u002F\u002Fexample.com)\n\n# New tab (HTML)\n\u003Ca href=\"https:\u002F\u002Fexample.com\" target=\"_blank\">Link\u003C\u002Fa>\n```\n\n---\n\nMarkdown links are deceptively simple. The basic syntax covers 80% of cases, but the remaining 20% — anchor links, relative paths, URLs with special characters, tool-specific behaviors — is where most people get stuck.\n\nNow you have the complete picture.\n\nFor other Markdown guides, see our articles on [tables](\u002Fen\u002Fblog\u002Fmarkdown-table-complete-guide-with-examples), [horizontal lines](\u002Fen\u002Fblog\u002Fhow-to-add-horizontal-line-markdown), and [why AI responds in Markdown](\u002Fen\u002Fblog\u002Fwhy-ai-responds-in-markdown).\n\nIf you're looking for a Markdown viewer that handles links cleanly across all your devices, try Fude.\n\n📌 [Download Fude](\u002Fen#download)\n",[1304,1307],{"locale":1305,"slug":1306},"en","how-to-create-links-in-markdown",{"locale":1308,"slug":1309},"fr","comment-creer-liens-markdown",{"title":1311,"path":1246,"stem":1312,"description":1313,"children":-1},"Markdown and AI: why all LLMs adopted this format","en\u002Fblog\u002F4.why-ai-responds-in-markdown","LLMs output Markdown with every response. It's not a coincidence: token efficiency, semantic structure, training corpus. Here is why all LLMs adopted Markdown as their native format, and what it changes for you.",{"title":1315,"path":1316,"stem":1317,"description":1318,"children":-1},"How to Add Images in Markdown","\u002Fen\u002Fblog\u002Fhow-to-add-images-in-markdown","en\u002Fblog\u002F6.how-to-add-images-in-markdown","Learn how to add images in Markdown, write useful alt text, use relative paths, resize images, add captions, and handle GitHub, Obsidian, and Fude-specific behavior.",1779087581167]