Skip to content

图片

虽然图片是Markdown的第一类公民,并且是核心语法的一部分,但处理它们可能会很困难。Material for MkDocs使得处理图片更加舒适,提供了图片对齐和图片标题的样式。

配置

此配置增加了对齐图片、为图片添加标题(将其呈现为图形)以及标记大图片以进行懒加载的能力。将以下行添加到mkdocs.yml中:

markdown_extensions:
  - attr_list
  - md_in_html
  - pymdownx.blocks.caption

查看其他配置选项:

灯箱

0.1.0 glightbox

如果您想为文档添加图片缩放功能,glightbox插件是一个很好的选择,因为它与Material for MkDocs完美集成。使用pip安装它:

pip install mkdocs-glightbox

然后,将以下行添加到mkdocs.yml中:

plugins:
  - glightbox

我们建议查看可用的配置选项

使用

图片对齐

当启用属性列表时,可以通过添加相应的对齐方向来对齐图片,使用align属性,即align=leftalign=right

左对齐的图片
![图片标题](https://dummyimage.com/600x400/eee/aaa){ align=left }

图片标题

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.

右对齐的图片
![图片标题](https://dummyimage.com/600x400/eee/aaa){ align=right }

图片标题

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.

如果没有足够的空间在图片旁边渲染文本,图片将拉伸到视口的全宽,例如在移动视口上。

为什么没有居中对齐?

align属性不允许居中对齐,这就是为什么Material for MkDocs不支持此选项的原因。1 相反,可以使用图片标题语法,因为标题是可选的。

图片标题

遗憾的是,Markdown语法不提供对图片标题的原生支持,但始终可以使用HTML中的Markdown扩展与字面figurefigcaption标签:

带标题的图片
<figure markdown="span">
  ![图片标题](https://dummyimage.com/600x400/){ width="300" }
  <figcaption>图片标题</figcaption>
</figure>
图片标题

然而,标题提供了一种替代语法,可以为任何Markdown块元素(包括图片)添加标题:

带标题的图片
![图片标题](https://dummyimage.com/600x400/){ width="300" }
/// 标题
图片标题
///

图片懒加载

现代浏览器通过loading=lazy指令提供原生支持懒加载图片,在不支持的浏览器中降级为急加载:

懒加载的图片
![图片标题](https://dummyimage.com/600x400/){ loading=lazy }

明亮和黑暗模式

8.1.1

如果您添加了颜色调色板切换并希望在明亮和黑暗配色方案中显示不同的图片,可以在图片URL后附加#only-light#only-dark哈希片段:

明亮和黑暗模式下不同的图片
![图片标题](https://dummyimage.com/600x400/f5f5f5/aaaaaa#only-light)
![图片标题](https://dummyimage.com/600x400/21222c/d5d7e2#only-dark)

塞尔达光明世界 塞尔达黑暗世界

使用自定义配色方案时的要求

内置的配色方案定义了上述哈希片段,但如果您使用自定义配色方案,您还需要根据其是明亮模式还是黑暗模式,将以下选择器添加到您的方案中:

[data-md-color-scheme="custom-light"] img[src$="#only-dark"],
[data-md-color-scheme="custom-light"] img[src$="#gh-dark-mode-only"] {
  display: none; /* 在明亮模式下隐藏黑暗图片 */
}
[data-md-color-scheme="custom-dark"] img[src$="#only-light"],
[data-md-color-scheme="custom-dark"] img[src$="#gh-light-mode-only"] {
  display: none; /* 在黑暗模式下隐藏明亮图片 */
}

记得将"custom-light""custom-dark"更改为您的方案名称。


  1. 您可能还会注意到,align属性自HTML5起已被弃用,那么为什么还要使用它呢?主要原因是可移植性——它仍然被所有浏览器和客户端支持,并且不太可能被完全移除,因为许多旧网站仍在使用它。这确保了在Material for MkDocs生成的网站之外查看包含这些属性的Markdown文件时外观的一致性。