hexo 新建打开自动化

本篇用一个脚本实现新建文章时自动打开文本编辑器,如果你希望写博客的时候更智能一点,那么就往下看吧~

Let’s go!

如何实现自动化

我们知道,新建一遍博客的命令是 hexo n <title>,在正常情况下,新建完成后是要自己手动打开对应文档去编辑内容的。有些喜欢按某种规则分类整理文件夹的同学可能会面临本地博客目录埋得太深的情境,这时候手动用编辑器打开就显得有些繁琐。

有没有什么办法能让编辑器在新建完成后自动打开呢?

当然是有的,只需要编写一小段脚本即可满足你的愿望。

在你的博客根目录下,进行如下操作:

  1. 新建 scripts 文件夹;
  2. scripts 文件夹内新建 auto.js 文件并编辑;
  3. 复制下面的代码进去,保存退出。

Windows 平台

1
2
3
4
5
6
7
8
9
10
// 以下代码针对 Windows 平台
var spawn = require('child_process').exec;
// Hexo 2.x 用户复制这段
hexo.on('new', function(path){
exec('start "markdown编辑器绝对路径.exe" ' + path);
});
// Hexo 3 用户复制这段
hexo.on('new', function(data){
exec('start "markdown编辑器绝对路径.exe" ' + data.path);
});

Mac 平台

1
2
3
4
5
6
7
8
9
10
// 以下代码针对 Mac 平台
var exec = require('child_process').exec;
// Hexo 2.x 用户复制这段
hexo.on('new', function(path){
exec('open -a "markdown编辑器绝对路径.app" ' + path);
});
// Hexo 3 用户复制这段
hexo.on('new', function(data){
exec('open -a "markdown编辑器绝对路径.app" ' + data.path);
});

Linux 平台

Linux 平台下没有找到相关代码,只有一位博主根据 Mac 的代码自己写了一段,据说可以在所有平台通用,我没有试过,请读者自行尝试吧。

1
2
3
4
5
var exec = require('child_process').exec;

hexo.on('new', function(data){
exec('atom' +' '+ data.path);
});

博主发现其实只要是能在命令行下直接以命令打开的编辑器都可以这样子用,比如sublime & vim & atom,也就是说最后这个应该是适用于所有平台(windows上测试过了没有问题)。

个人经验

我是在 Mac 平台上搭建的博客,Mac 的编辑器绝对路径是 /Applications ,假设你用的编辑器是 atom,那么你应该在绝对路径处填写的就是 /Applications/atom.app。Windows 平台下的绝对路径请读者自行尝试。