hexo 设置新建文章时自动打开md编辑器

Hexo中新建一篇博文非常简单,只需要在命令行中键入以下命令然后回车即可:

1
hexo new "The title of your blog"

然后hexo就会在hexo的根目录下的source目录下的_post目录下自动创建相对应的md文件。然后我们只需要找到刚刚生成的文件进行编辑就可以了。

但是一旦文章比较多的情况下,我们就需要在成堆的md文件中找刚刚创建的博文,这就比较麻烦。


好在hexo的github上有类似的issue,然后hexo作者也可给出了解决方法:

ou can try to listen to the new event. For example:

1
2
3
4
5
6
7
8
9
10
11
var exec = require('child_process').exec;


hexo.on('new', function(path){
exec('vi', [path]);
});

// Hexo 3
hexo.on('new', function(data){
exec('vi', [data.path]);
});

根据作者给的示例给出了下列的解决方法:

  • 首先在hexo目录下的script目录下创建一个js脚本(没有的这个目录的话自己创建一个)。

  • js脚本的命名自定义,然后在脚本中写入以下代码。

  • windows端:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var spawn = require('child_process').exec;

    // Hexo 2.x 用户复制这段
    hexo.on('new', function(path){
    spawn('start "markdown编辑器绝对路径.exe" ' + path);
    });

    // Hexo 3 用户复制这段
    hexo.on('new', function(data){
    spawn('start "markdown编辑器绝对路径.exe" ' + data.path);
    });
  • mac os端:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    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端的操作脚本,然后自己试着改了下,能在我的电脑(debian/ubuntu试过了没问题)上成功跑起来了,po下代码:

1
2
3
4
5
6
7
8
9
10
var exec = require('child_process').exec;

// Hexo 2.x 用户复制这段
hexo.on('new', function(path){
exec('vim ' + path);
});
// Hexo 3 用户复制这段
hexo.on('new', function(data){
exec('vim ' + data.path);
});

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%