解决hexo不显示插入图像的问题

众所周知,hexo插入图像有两种方式,一种是使用 markdown 语法:

![图片替代文本](图片链接 "图片title")

还有一种是使用 HTML 语法来更精确的控制插入的图像:

<div align = "center">
    <img src = ./Fig/Fig27.png width = 90%> //这里使用相对路径来引用图像
</div> 

后者能更精确的控制图像的大小和位置,来满足插入图像时的各种需求。

我使用的markdown编辑器是vscode,一方面vscode的启动速度快,占用资源少,另一方面,vscode众多的强大插件能完美的满足我在编辑markdown时的要求。这里如果你使用markdown文件最终是为了生成pdf文件的话,强烈推荐一款vscode下的插件:

每次打开一个.md文件后,在编辑区右键即可打开预览模式,

并且上述两种插入图像的方式在这个插件下都可以正确显示。但是每次将.md文件推送到网站上时,插入的图像都不会正确显示,查找一番后,我发现了在Hexo官方网站上有这个问题的解决方案。这里贴一下链接:Hexo官方中文网站

具体方法是:

  1. 在根目录下配置文件 _config.yml 中有 post_asset_folder:false 改为true。这样在建立文件时,Hexo会自动建立一个与文章同名的文件夹,这样就可以把与该文章相关的所有资源(图片)都放到那个文件夹里方便后面引用。
  2. git bash安装插件:npm install https://github.com/7ym0n/hexo-asset-image –save(这是个修改过的插件,经测试无问题),使用这个插件来引入图片(这里如果遇到了安装时没有写入权限的问题,则在命令最后加入 -g 来获取权限。
  3. 插入图片时用这种方式:**,其中test.jpg就是你要引用的图片,后面的This is an test image是图片描述,可以自己修改。注意这里的图片描述不能删除**,因为这个插件将其定义为不可省略。

上面这个方法的缺点是在vscode预览中并不能看到插入的图像,这里可以使用hexo发布至本地来查看是否成功。输入如下命令:

hexo s

然后在浏览器地址栏访问如下网页查看效果:

http://localhost:4000/