Markdown 超链接生成器
填写文字和网址、选择链接形式,即可复制在 GitHub、Discord、Obsidian 上都能正确渲染的 Markdown 超链接。所有数据都不会离开你的浏览器。
Markdown 中怎么写超链接?
把显示文字放进方括号,紧接着用圆括号写目标网址:`[链接文字](https://example.com)`。方括号与圆括号之间不能有空格。想要鼠标悬停提示,就在圆括号内的网址后面补一个带引号的标题。相对路径、#锚点和 mailto: 邮箱地址同样适用这一写法。
[MDUtil](https://mdutil.com)
[MDUtil](https://mdutil.com "免费的 Markdown 工具")两行都会渲染成显示为 MDUtil 的可点击链接。第二行还带有 title 属性,多数渲染器会在悬停时显示为气泡提示。
在线使用 Markdown 超链接生成器
参数设置
输出结果
Markdown 超链接语法详解
Markdown 一共有四种链接写法,再加上若干平台特有的规则。它们最终都会编译成 <a> 元素,区别在于网址写在哪里、以及哪些渲染器认这种写法。
行内链接(标准写法)
最常用的写法:方括号写文字,圆括号写网址,还可以在网址后面用双引号补一个标题。方括号和圆括号之间只要多一个空格就会失效。
先读一遍 [CommonMark 规范](https://commonmark.org "CommonMark 0.31") 再来讨论边界情况。渲染结果中「CommonMark 规范」是指向 commonmark.org 的链接,鼠标悬停时显示「CommonMark 0.31」。
自动链接与裸网址
尖括号可以把裸网址直接变成链接,显示文字就是网址本身。GitHub Flavored Markdown 也会自动识别裸网址,但严格的 CommonMark 不会,因此加尖括号才是跨平台最稳妥的做法。
<https://mdutil.com>
<[email protected]>第一行生成指向 https://mdutil.com 的链接,显示文字就是网址;第二行无需手写 mailto: 就会变成邮件链接。
引用式链接
把网址从正文里抽走,只留一个短标签,网址定义写在文件的其他位置(通常放在末尾)。这样长段落更易读,同一个定义还能被多处引用复用。
[CommonMark][spec] 定义了这套语法,简写形式 [spec][] 指向同一个地址。
[spec]: https://commonmark.org "CommonMark"两处链接都会指向 commonmark.org。标签不区分大小写,定义那一行不会出现在渲染结果里。
标题锚点链接
在同一篇文档内跳转时使用锚点:把标题文字转成小写、空格换成连字符、去掉标点即可。GitHub、GitLab 和主流静态站点生成器都会自动生成这类 slug。
跳转到 [快速开始](#快速开始),或跳到另一个文件的章节 [环境要求](./install.md#requirements)。第一个链接会滚动到本页的「快速开始」标题;第二个会打开 install.md 并定位到其中的「Requirements」标题。
图片链接与带格式的链接文字
在链接前加一个感叹号就变成图片;把图片语法嵌套进链接,图片就可以点击——README 里的徽章都是这么做的。加粗、斜体符号要写在方括号内部。

[](https://ci.example.com)
[**加粗的链接文字**](https://mdutil.com)第一行是带替代文字的图片;第二行是可点击跳转到 CI 面板的徽章;第三行是文字为粗体的链接。
Discord 等聊天软件中的超链接
Discord 把行内写法称为「掩码链接」(masked link),在普通消息以及机器人、Webhook 的 embed 中都能渲染。尖括号在这里另有含义:用来屏蔽链接预览卡片。Slack 则完全不解析 Markdown 链接语法。
[加入服务器](https://discord.gg/example)
<https://example.com>在 Discord 中,第一行只显示「加入服务器」这几个字并可点击;第二行发送纯网址,同时不展开预览卡片。
各平台对 Markdown 超链接的支持
行内链接几乎处处可用,但引用式链接、相对路径和标题锚点在各平台上的处理方式差别不小。
| 平台 | 支持情况 | 说明 |
|---|---|---|
| GitHub / GitLab | 完全支持 | 行内、引用式、自动链接以及仓库内相对路径都可用,标题锚点自动生成。 |
| Discord | 部分支持 | 消息和 embed 中支持 [文字](网址) 掩码链接;不支持引用式链接,<网址> 用于屏蔽预览。 |
| Slack | 部分支持 | 输入框不解析 [文字](网址),Slack 自己的格式是 <https://example.com|文字>。 |
| Obsidian | 完全支持 | 标准 Markdown 链接之外,还支持库内笔记的 [[双链]] 和 ![[嵌入]]。 |
| Notion | 完全支持 | 输入 [文字](网址) 会自动转换;选中文字后粘贴网址也会直接生成链接。 |
| 完全支持 | 新版和旧版 Reddit 的 Markdown 编辑器都支持行内与引用式链接。 |
如何用本工具生成 Markdown 超链接
选择链接类型
根据需要选择标准链接、自动链接、引用式链接或图片链接:分别对应行内文字、裸网址、可复用标签和嵌入图片。
填写文字与网址
输入读者看到的文字,再粘贴目标地址。绝对网址、相对路径、#锚点和 mailto: 邮箱地址都可以直接使用。
按需补充选项
填写标题可生成悬停提示;引用式链接需要指定引用标签;打开「在新窗口打开」会为 HTML 输出加上 target 和 rel 属性。
复制结果
复制生成的 Markdown;需要 <a> 标签就切到 HTML 标签页;发布前在预览标签页确认链接指向正确。
常见问题
Markdown 中怎么创建超链接?
把显示文字写进方括号,紧接着用圆括号写目标网址,例如 [链接文字](https://example.com)。方括号与圆括号之间不能有空格。如果需要悬停提示,在圆括号内的网址后面再加一个用双引号包裹的标题即可。
怎样让 Markdown 链接在新标签页打开?
Markdown 本身没有对应语法,需要内嵌 HTML:用 <a> 标签并设置 target="_blank" 与 rel="noopener noreferrer"。MkDocs、启用 attrs 插件的 markdown-it 等渲染器允许在普通链接后追加 {target=_blank}。而 GitHub README 等会过滤 HTML 的平台会把这些属性直接删掉。
标准链接和引用式链接有什么区别?
渲染结果完全相同。标准链接把网址写在正文里,适合只用一次的链接;引用式链接在正文中只留一个短标签,网址集中定义在文件其他位置,正文更易读,而且同一个网址在十处引用时只需要改一行。
怎样链接到同一篇文档中的标题?
使用由标题文字生成的锚点:转成小写、空格换成连字符、去掉标点,于是「Quick Setup」对应 [Quick Setup](#quick-setup)。GitHub、GitLab 和主流静态站点生成器都会自动生成这些锚点;标题重名时会追加数字后缀,例如 #quick-setup-1。中文标题一般直接用原文作为锚点。
Markdown 里怎么写邮箱链接?
按普通链接写法使用 mailto: 协议即可,例如 [联系我们](mailto:[email protected])。还可以用查询参数预填主题,例如 mailto:[email protected]?subject=Bug%20report。把裸邮箱地址放进尖括号同样会自动生成邮件链接。
Discord 里怎么发超链接?
Discord 支持掩码链接:[点击这里](https://example.com) 只显示文字、隐藏网址,普通消息以及机器人、Webhook 的 embed 中都有效,但不支持引用式链接。如果只想发网址又不想展开预览卡片,把网址用尖括号包起来即可。
Markdown 里可以直接写 HTML 链接吗?
多数渲染器都可以。<a> 标签能设置 target、rel、class、id 这些 Markdown 表达不了的属性。例外是会过滤或禁用 HTML 的平台,例如 Discord、Slack、Reddit 评论区以及部分静态站点配置,标签会被转义成纯文本或被直接移除。
为什么我的 Markdown 链接不生效?
常见原因有四个:方括号和圆括号之间多了空格;网址中含有未编码的空格或圆括号;缺少 https:// 这样的协议前缀;或者链接写在了代码块里而被刻意忽略。把空格编码成 %20,或者在圆括号内用尖括号把网址包起来即可解决。
怎样链接到同一个仓库里的另一个 Markdown 文件?
使用相对路径,例如 [安装说明](./docs/install.md)。GitHub、GitLab 和 VS Code 都会以当前文件为基准解析相对链接,仓库被克隆或整体移动后链接依然有效。想直接跳到目标文件的某个标题,追加锚点即可,例如 ./docs/install.md#requirements。
怎样让图片变成可点击的链接?
把图片语法嵌套进链接:[](https://example.com)。外层方括号提供跳转地址,内层带感叹号的语法提供图片。README 中的徽章跳转到构建面板或软件包页面,用的就是这种写法。