让 Hugo 自动给图片加上说明文字
目次
本文测试于 Hugo extended 0.125.6,完整的网站代码在此。
将图片标题用作说明文字(推荐) #
Markdown 插入图片的代码是这样的:
|
|
对于的 HTML 代码:
|
|
用户的光标放在图片时,会有提示框,其内容为标题。提示框不好用,因为用户不一定会把光标移动到图片上,而且用户可能不用鼠标。
既然提示框不好用,那我们可以将标题转换为图片底下的说明文字,这样用户一定会看到。对应的 HTML 代码为:
|
|
配置流程:
在博客根目录下新建
layouts/_default/_markup/render-image.html
1 2
mkdir layouts/_default/_markup/ -p touch layouts/_default/_markup/render-image.html
往
render-image.html
填入以下内容(如果不需要修改样式,可以去除class="..."
):1 2 3 4 5 6 7 8 9 10
{{ if .Title }} <figure class="figure"> <img class="img" src="{{ .Destination | safeURL }}" {{- with .Text }} alt="{{ . }}"{{ end -}} > <figcaption>{{ .Title }}</figcaption> </figure> {{ else }} <img class="img" src="{{ .Destination | safeURL }}" {{- with .Text }} alt="{{ . }}"{{ end -}} > {{ end }}
![](https://upload.wikimedia.org/wikipedia/commons/1/1f/Wiki-sisters.png "维基娘的姊妹们(由左至右):维基共享资源娘、维基百科娘、维基语录娘")
会显示成这样。
如果不需要说明文字,就写 ![维基娘的姊妹们(由左至右):维基共享资源娘、维基百科娘、维基语录娘](https://upload.wikimedia.org/wikipedia/commons/1/1f/Wiki-sisters.png)
。
将图片描述用作说明文字(不推荐) #
不推荐此方法的原因是 <img>
元素的 alt
属性(描述) 和 <figcaption> 元素
意义不同,将前者转换成后者是错的。
如果你的 Markdown 图片链接是只有描述没有标题,也可以把描述变成说明文字。render-image.html
需要改为:
|
|
![维基娘的姊妹们(由左至右):维基共享资源娘、维基百科娘、维基语录娘](https://upload.wikimedia.org/wikipedia/commons/1/1f/Wiki-sisters.png)
会显示成这样。
样式 #
我给本站加了一些额外的样式,你可以根据你的需求调整你的网站。!important
必要时才用。
|
|
用表格添加说明文字 #
我还在 Stack Overflow 发现了一个怪招:使用单列双行的表格,第一行放图片,第二行放说明文字。
|
|
|
|
参考资料 #
- Caption images with markdown render hooks in Hugo | Sebastian De Deyne
- Image render hooks | Hugo
- html - Accessibility - Difference between
<img alt>
and<figcaption>
- Stack Overflow - Alt vs Figcaption
<img>
: The Image Embed element - HTML: HyperText Markup Language | MDN<figure>
: The Figure with Optional Caption element - HTML: HyperText Markup Language | MDN
giscus 评论。如果评论未加载,giscus 可能被你的互联网服务提供商屏蔽。
Disqus 评论。如果评论未加载,Disqus 可能被你的互联网服务提供商屏蔽。