介绍在 Hexo 中使用 LiveReload 的方法。
之前我在 Ruhoh 上使用 guard-livereload 来实现自动更新预览。这样,一旦我修改了网站中的内容,livereload 会立马检测到并且通知浏览器刷新页面,不需要自己手动按 F5
刷新了。完全符合本人热衷偷懒的口味。
迁移到 Hexo 后,我也希望能够用上这个功能。经过一番搜索,我发现在 node.js 平台要使用 Livereload 也非常容易。
1 | $ npm install -g node-livereload |
安装 livereload 的浏览器插件;
完成后,到你的 Hexo 博客根目录下执行:附图 1 LiveReload
1 | $ livereload -e ".md, .html, .png, .svg, .jpg, .gif, .css, .js, .json" |
后面的一长串后缀名是 livereload 要监视的文件格式。一旦带有这类后缀名的文件内容发生变动,livereload 就会检测到,并向浏览器发出信号。
大功告成。现在试试编辑你的 Markdown 源文件,保存一下。浏览器是不是就立即刷新了呢?
每次都要敲上面那串命令太繁琐。为了省事,可以把启动 hexo 服务器和 livereload 两条命令写成一个脚本,名为 hexo_run
,放在你的 bin 目录里。
1 |
|
其中 $HEXO
是一个自定义的变量,用来保存你的 Hexo 根目录地址。
最后别忘了给 hexo_run
添加可执行权限:
1 | $ sudo chmod +x hexo_run |
1 | $ npm install hexo-livereload --save |
之后像往常一样启动 hexo 的预览 hexo server
,这个插件就会自动启动。
hexo-livereload 允许直接在 _config.yml
中配置 livereload 的端口,默认为 35729。如果没有遇到端口冲突,通常不必要对端口号进行设置。
1 | livereload: |
经过我的测试,我发现: