插入图片

图片的写法和链接几乎一模一样,只是最前面多了一个感叹号。但真正让图片语法区别于链接的,是方括号里的替代文本(alt text)。它平时看不见,却在图片加载失败、被读屏软件朗读、或者读者把图片地址复制到别处时,替图片说话。这一页讲清替代文本该怎么写、路径该怎么给,以及为什么图片和链接虽然像,权衡却相反。

基本写法

感叹号加方括号加圆括号,就是一张图片:

![示例图片](https://example.com/demo.png "可选标题")
<p><img src="https://example.com/demo.png" alt="示例图片" title="可选标题"></p>

和行内式链接一一对应:方括号里是替代文本,圆括号里是图片地址,地址后面同样可以跟一段用引号包起来的标题(悬停时显示)。

图片也能用引用式写法,! 加在方括号前面就行:

![示例图片][demo]

[demo]: https://example.com/demo.png

替代文本怎么写

替代文本有两个作用:图片加载不出来时,浏览器把它显示在图片位置;读屏软件朗读时,它就是图片的全部内容。所以它不是装饰,而是图片在无图环境下的替身。

有两个要点。第一,描述内容而不是描述图片。一张架构图的替代文本应该是「订单、支付与库存三个服务的调用关系」,而不是「图片」或文件名——后者对读屏用户没有信息量。

第二,替代文本里不能写格式。方括号里的内容是纯文本,标记符号会被剥掉,只留下文字本身:

![**粗体** 和 `代码`](https://example.com/a.png)
<p><img src="https://example.com/a.png" alt="粗体 和 代码"></p>

想强调也做不到——alt 属性接受的就是一段字符串,没有富文本概念。

什么时候该留空

纯装饰性的图片(分隔线、背景纹理、图标条)确实可以用空替代文本:

![](https://example.com/divider.svg)

但空替代文本会让读屏用户跳过这张图。如果希望它被朗读,写上简短说明;如果它真的没有信息量,留空比写「图片」好。

路径怎么写

图片地址的规则和链接地址一致:同仓库内用相对路径,跨站用完整地址。相对路径相对于当前文件所在目录解析,所以放在 public/images/ 下的图片,在 docs/guide/ 目录的文档里要写成 ../../images/xxx.png——前提是站点按文件结构映射 URL。

常见坑

写法实际渲染原因
![说明](https://x.com/a.png)图片基本写法
![](https://x.com/a.png)图片,替代文本为空空替代文本合法
![**粗体**](https://x.com/a.png)替代文本为「粗体」alt 只接受纯文本
![说明](<./my image.png>)路径编码成 %20尖括号包裹含空格的路径
![说明](https://x.com/a.png) 漏了感叹号变成链接少了 ! 就是普通链接

练习

把下面这段内容改写成 Markdown,要求:插图用带替代文本的围栏式写法,路径是仓库内的相对路径 ../../images/flow.png;同时给这张图配一个引用式链接,让它点击后能跳到 https://example.com/docs/flow;替代文本要描述图的内容而不是写「图片」。

下面这张图展示了订单从下单到发货的完整流程:
图片加链接

解题思路: 图片的基本写法是「感叹号 + 方括号里的替代文本 + 圆括号里的路径」,和链接只差最前面的感叹号。想让图片可点击,就把它包在链接语法里——链接在前,图片在后。替代文本要描述内容,路径用仓库内的相对地址。

详细步骤:

  1. 替代文本写成描述性的一句话:「订单从下单到发货的完整流程」,而不是「图片」或文件名——它是图片加载失败时读者唯一能看到的内容。
  2. 图片写法为 ![订单从下单到发货的完整流程](../../images/flow.png)。感叹号不能漏,漏了就退化成普通链接。
  3. 让图片可点击,就在外层再套一层链接:[![替代文本](../../images/flow.png)](https://example.com/docs/flow)。方括号里是图片,圆括号里是跳转地址。
  4. 相对路径 ../../images/flow.png 相对于当前文档所在目录,逐级上溯两级再进 images,不用写域名。
  5. 检验:渲染后是一个包着图片的链接,点击跳到 https://example.com/docs/flow,图片加载失败时显示那句描述文字。

最终答案:

[![订单从下单到发货的完整流程](../../images/flow.png)](https://example.com/docs/flow)

小结

读完这一页,你应当能写出带替代文本的图片,能把图片包进链接里做成可点击的示意图,能解释替代文本为什么只接受纯文本、为什么不能只写「图片」,也能在图片路径带空格时用尖括号包裹。接下来放图时,你会先想好这张图在「看不见图」的场景里该说什么,再去挑路径。

发现内容有问题?

告诉我们哪里需要改进。