作为一个博客小白,在了解了 github 上可以搭建博客后,找时间了解了一下相关的生态。最终选择了数据保存在 github,页面托管在 cloudflare pages 上,托管在 cloudflare 有以下好处:1)github 的仓库可以设为私有;2)仅仅上传文章的源 markdown 文件,不用本地生成静态文件,cloudflare 点点点就可以完成。

Typora 写 hugo 博客图片问题

一年前购买了 typora 基本没有怎么用,这次就想用起来。文章在 typora 完成后,将文章和图片推送到 github,然后 cloudflare 会收到更新,自动编译和部署。

在 typora 写博客的时候遇到了问题,文章的图片要么 typora 正常显示,要么网站正常显示,总是不能兼容 2 者。出现这个问题的原因是我把所有文章的图片放在 hugoSite/static/images 里面,文章的目录是 hugoSite/content/posts,所以如果要让图片正常在 typora 中显示,图片相对引用的地址类似 ../../static/images/xxx.jpg。文章完成后,hugo 编译生成静态文件时会把 hugoSite/static 下面的文件全部拷贝到 hugoSite/public 下面(注意 static 文件夹并不会拷贝,只拷贝文件夹里面的内容),生成的静态 html 文件里面图片的引用地址没有变化还是 ../../static/images/xxx.jpg,这会导致路径多了一层 static 使得图片无法显示。

解决方式

经过网上多次搜索,最终放弃了将所有图片保存在 hugoSite/static/images 下的方案,采用每个文章在 hugoSite/content/posts 下创建一个文件夹,文章和图片都放在该文件夹下解决了问题。以下是新方案的目录结构。

├── archetypes
│   └── default.md
├── config.toml
├── content
│   └── posts
│       ├── hugo-typora-cloudflare.md           // 文章没有图片可以不创建文件夹
│       └── mac-copy-path                       // 文章对应的文件夹
│           ├── findcopypath.jpg                // 文章使用的图片
│           ├── image-20230804183646776.png
│           ├── image-20230804183940171.png
│           ├── image-20230804183940173.png
│           ├── image-20230804185638749.png
│           └── index.md                        // 文章文件,必须 index 作为文件名

使用该方案后,Typora、github 中预览、网站的显示,都可以正常查看图片。

参考:本站引用图片的“顺滑”流程