Markdown 超链接生成器

填写文字和网址、选择链接形式,即可复制在 GitHub、Discord、Obsidian 上都能正确渲染的 Markdown 超链接。所有数据都不会离开你的浏览器。

免费 · 无需注册 · 全程在浏览器内运行最后更新

Markdown 中怎么写超链接?

把显示文字放进方括号,紧接着用圆括号写目标网址:`[链接文字](https://example.com)`。方括号与圆括号之间不能有空格。想要鼠标悬停提示,就在圆括号内的网址后面补一个带引号的标题。相对路径、#锚点和 mailto: 邮箱地址同样适用这一写法。

markdown
[MDUtil](https://mdutil.com)
[MDUtil](https://mdutil.com "免费的 Markdown 工具")

两行都会渲染成显示为 MDUtil 的可点击链接。第二行还带有 title 属性,多数渲染器会在悬停时显示为气泡提示。

在线使用 Markdown 超链接生成器

参数设置

输出结果

Markdown 超链接语法详解

Markdown 一共有四种链接写法,再加上若干平台特有的规则。它们最终都会编译成 <a> 元素,区别在于网址写在哪里、以及哪些渲染器认这种写法。

行内链接(标准写法)

最常用的写法:方括号写文字,圆括号写网址,还可以在网址后面用双引号补一个标题。方括号和圆括号之间只要多一个空格就会失效。

markdown
先读一遍 [CommonMark 规范](https://commonmark.org "CommonMark 0.31") 再来讨论边界情况。

渲染结果中「CommonMark 规范」是指向 commonmark.org 的链接,鼠标悬停时显示「CommonMark 0.31」。

自动链接与裸网址

尖括号可以把裸网址直接变成链接,显示文字就是网址本身。GitHub Flavored Markdown 也会自动识别裸网址,但严格的 CommonMark 不会,因此加尖括号才是跨平台最稳妥的做法。

markdown
<https://mdutil.com>
<[email protected]>

第一行生成指向 https://mdutil.com 的链接,显示文字就是网址;第二行无需手写 mailto: 就会变成邮件链接。

引用式链接

把网址从正文里抽走,只留一个短标签,网址定义写在文件的其他位置(通常放在末尾)。这样长段落更易读,同一个定义还能被多处引用复用。

markdown
[CommonMark][spec] 定义了这套语法,简写形式 [spec][] 指向同一个地址。

[spec]: https://commonmark.org "CommonMark"

两处链接都会指向 commonmark.org。标签不区分大小写,定义那一行不会出现在渲染结果里。

标题锚点链接

在同一篇文档内跳转时使用锚点:把标题文字转成小写、空格换成连字符、去掉标点即可。GitHub、GitLab 和主流静态站点生成器都会自动生成这类 slug。

markdown
跳转到 [快速开始](#快速开始),或跳到另一个文件的章节 [环境要求](./install.md#requirements)。

第一个链接会滚动到本页的「快速开始」标题;第二个会打开 install.md 并定位到其中的「Requirements」标题。

图片链接与带格式的链接文字

在链接前加一个感叹号就变成图片;把图片语法嵌套进链接,图片就可以点击——README 里的徽章都是这么做的。加粗、斜体符号要写在方括号内部。

markdown
![MDUtil 标志](/images/logo.png "MDUtil")
[![构建通过](https://img.shields.io/badge/build-passing-green)](https://ci.example.com)
[**加粗的链接文字**](https://mdutil.com)

第一行是带替代文字的图片;第二行是可点击跳转到 CI 面板的徽章;第三行是文字为粗体的链接。

Discord 等聊天软件中的超链接

Discord 把行内写法称为「掩码链接」(masked link),在普通消息以及机器人、Webhook 的 embed 中都能渲染。尖括号在这里另有含义:用来屏蔽链接预览卡片。Slack 则完全不解析 Markdown 链接语法。

markdown
[加入服务器](https://discord.gg/example)
<https://example.com>

在 Discord 中,第一行只显示「加入服务器」这几个字并可点击;第二行发送纯网址,同时不展开预览卡片。

各平台对 Markdown 超链接的支持

行内链接几乎处处可用,但引用式链接、相对路径和标题锚点在各平台上的处理方式差别不小。

平台支持情况说明
GitHub / GitLab完全支持行内、引用式、自动链接以及仓库内相对路径都可用,标题锚点自动生成。
Discord部分支持消息和 embed 中支持 [文字](网址) 掩码链接;不支持引用式链接,<网址> 用于屏蔽预览。
Slack部分支持输入框不解析 [文字](网址),Slack 自己的格式是 <https://example.com|文字>。
Obsidian完全支持标准 Markdown 链接之外,还支持库内笔记的 [[双链]] 和 ![[嵌入]]。
Notion完全支持输入 [文字](网址) 会自动转换;选中文字后粘贴网址也会直接生成链接。
Reddit完全支持新版和旧版 Reddit 的 Markdown 编辑器都支持行内与引用式链接。

如何用本工具生成 Markdown 超链接

  1. 选择链接类型

    根据需要选择标准链接、自动链接、引用式链接或图片链接:分别对应行内文字、裸网址、可复用标签和嵌入图片。

  2. 填写文字与网址

    输入读者看到的文字,再粘贴目标地址。绝对网址、相对路径、#锚点和 mailto: 邮箱地址都可以直接使用。

  3. 按需补充选项

    填写标题可生成悬停提示;引用式链接需要指定引用标签;打开「在新窗口打开」会为 HTML 输出加上 target 和 rel 属性。

  4. 复制结果

    复制生成的 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。

怎样让图片变成可点击的链接?

把图片语法嵌套进链接:[![替代文字](image.png)](https://example.com)。外层方括号提供跳转地址,内层带感叹号的语法提供图片。README 中的徽章跳转到构建面板或软件包页面,用的就是这种写法。