偶然看到一篇博客: https://www.junian.net/hugo-image-figure-wrap/
可以用 replaceRE 把 Markdown 转换得到的 HTML 中的 img 标签变成 figure 标签:
<p><img src="https://www.example.com/image.png" alt="Alt Text" title="Title Text"></p>
变为
<figure>
<img src="https://www.example.com/image.png" alt="Alt Text" title="Title Text">
<figcaption>Alt Text</figcaption>
</figure>
我按它的思路,顺手改了下我博客的主题代码,可以把图片的 src 由本地地址变为图床上的地址:
src
原来是ranked_results.jpg
,现在是https://图床 HOST/img/blog/ReID 任务中的 CMC 和 mAP/ranked_results.jpg
。省的自己在 Markdown 文件中改了。感觉蛮方便的。
上面这个功能最关键的代码是
{{ $reAltIn := "<img src=\"([^\"/]+)\" alt=\"([^\"]+)\" />" }}
{{ $reAltOut := (printf "<img src=\"%s%s$1\" alt=\"$2\">" .Site.Params.CDN.Host .Dir )}}
{{ $altContent := .Content | replaceRE $reAltIn $reAltOut | safeHTML }}
replaceRE+斟酌半天的正则=奇巧淫计
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.