一个方便的在hexo博客中插入图片的方法
这套博客约定把所有文章图片放在 source/images,文章保存在
source/_posts。Typora 使用相对路径预览,Hexo
构建时自动转换为站点根路径。
不需要为每篇文章建立单独的资源目录,也不需要手工修改每张图片的路径。
Typora 设置
新文章模板已经包含下面这项配置:
1 | typora-copy-images-to: ../images |
首次使用时,在 Typora 的“设置 -> 编辑器 -> 图像插入”中:
- 开启“允许复制图片到指定文件夹”。
- 插入本地图片时选择“复制图片到指定文件夹”。
- 开启“优先使用相对路径”。
- 关闭“添加
./前缀”。
之后直接粘贴截图或拖入图片即可。Typora 会把文件复制到
source/images,并插入类似下面的 Markdown:
1 |  |
Hexo 设置
Typora 中的 ../images/xxx.png 是相对于
source/_posts 的正确本地路径,但文章部署到
/posts/:abbrlink/ 后需要使用
/images/xxx.png。
项目中的 scripts/normalize-image-paths.js
会在内存中自动完成转换,源 Markdown 仍保持 Typora 可预览的相对路径。
Hexo 配置保持如下:
1 | url: https://www.incrediblej.cool |
转换脚本位于站点自己的 scripts 目录,不修改 NexT
主题:
1 | hexo.extend.filter.register('before_post_render', data => { |
它同时兼容图片懒加载、Fancybox 和 Open Graph 图片地址。
此时我们尝试新建一个博客并插入图片
1 | npm run new -- "test" |
如果看到图片路径为 ../images/...,证明 Typora
配置成功:
然后在本地服务器测试效果:
1 | npm run clean |
打开
http://localhost:4000/,确认正文、图片、目录和代码块都正常后,再运行
npm run release 部署。