在Hexo Post中添加本地文件

在Markdown中,我们可以通过下面的代码来实现插入一个本地图片

1
![](image.jpg)

不过这种方式在预览markdown的时候可以正常显示,在将Hexo发布之后,这个路径是无效的,也就是说Hexo不支持直接使用Markdown的语法来实现展示本地链接。

这里介绍几种方式来实现Hexo Post中添加本地文件

Global Asset Folder

适用于全局的静态文件,一般指不是post相关的文件,例如image,css,javascript.

source文件夹下创建images,然后通过下面的代码来引用

1
![](/images/image.jpg)

这种方式不适用于markdown的语法,就是说,在预览markdown文件的时候,图片没有办法正常显示,这个只会在Hexo生成部署文件后,可以看到

Post Asset Folder

适用于特定Post的静态文件

  • _config.yml设置post_asset_foldertrue
    1
    2
    _config.yml
    post_asset_folder: true
  • 设置成功后,当我们通过hexo new [layout] <title>命令来创建post的时候,会自动创建一个与文件名相同的文件夹,将md所需要的静态文件都放在这个路径下即可
  • 引用文件
    1
    2
    3
    {% asset_path slug %}
    {% asset_img slug [title] %}
    {% asset_link slug [title] %}
  • 这种方式跟Global Asset Folder方式一样,有个问题就是不能在md预览模式下正常显示

预览模式下显示图片

为了让预览模式下也正常显示图片,可以使用hexo-renderer-marked

  • 安装hexo-renderer-marked
    1
    npm install hexo-renderer-marked --save
  • 修改_config.yml启用
    1
    2
    3
    4
    5
    _config.yml
    post_asset_folder: true
    marked:
    prependRoot: true
    postAsset: true
  • markdown语法
    1
    ![](./title/image.jpg)