向Hexo博客中插入图片
介绍三种向Hexo中插入图片的方法。
插入本地图片
将Hexo的配置文件 _config.yml 中的 post_asset_folder 属性设置为 true 。这样就开启了资源文件夹功能,该功能支持用户通过相对路径标签引用资源。设置完毕后,使用指令
1 | hexo new "新文件" |
时,在 _posts 文件夹下会生成一个md文件“新文件.md”和一个名为“新文件”的文件夹。
例如,我执行指令
1 | hexo new "hello" |
此时_posts文件夹下会新增一个 hello.md 文件和一个名为 hello 的文件夹,结构为:
1 | _posts |
将之后 hello.md 文件需要用到的图片存入 hello 文件夹中,在 md 文件中通过以下格式引用图片:
1 | {% asset_img image.png This is an example image %} |
还可以使用html语法(常用此种方法引用本地图片),下面的语句引用了与md文件同名的文件夹中的图片 image.png,并使其居中显示,显示出来的图片的长宽均为原图长宽的一半:
1 | <div align="center"><img src="image.png" width="50%" height="50%"></div> |
插入网络图片
(来源:知乎;作者:知乎用户;链接:Markdown中插入图片有什么技巧?)
只需要在基础语法的括号中填入图片的网络链接即可,现在已经有很多免费/收费图床和方便传图的小工具可选。例如:
1 | ![avatar](http://baidu.com/pic/doge.png) |
缺点是图片存在网络服务器上,非常依赖网络。
常用方法:利用GitHub存储图片,在markdown引用图片链接地址
(来源:知乎;作者:沈绍敏;链接:Markdown中插入图片有什么技巧?)
- 将markdown需要用的图片放到git仓库中,发布到GitHub上
- 访问GitHub仓库:smshen/MarkdownPhotos · GitHub
- 访问图片:MarkdownPhotos/test.jpg at master · smshen/MarkdownPhotos · GitHub
- 点 download 按钮,在地址栏可以复制图片地址,或者在Download按钮上直接右键 “复制链接地址”:
https://raw.githubusercontent.com/smshen/MarkdownPhotos/master/Res/test.jpg - 在Markdown中引用图片:
1
![Aaron Swartz](https://raw.githubusercontent.com/smshen/MarkdownPhotos/master/Res/test.jpg)
插入base64转码结果
(来源:知乎;作者:知乎用户;链接:Markdown中插入图片有什么技巧?)
用base64转码工具把图片转成一段字符串,然后把字符串填到基础格式中链接的那个位置。
基础用法:
1 | ![avatar](data:image/png;base64,iVBORw0......) |
这个时候会发现插入的这一长串字符串会把整个文章分割开,非常影响编写文章时的体验。如果能够把大段的base64字符串放在文章末尾,然后在文章中通过一个id来调用,文章就不会被分割的这么乱了。就像写论文时的文末的注释和参考文档一样。这个想法可以通过markdown的参考式链接语法来实现。
进阶用法如下:
1 | ![avatar][doge] |
文末存储字符串语法:
1 | [doge]:data:image/png;base64,iVBORw0...... |
这个用法不常见,比较野路子。优点是很灵活,不会有链接失效的困扰。缺点是一大团base64的乱码看着不美观。