美文网首页
使用wox配合插件快速将hexo文章上传到github

使用wox配合插件快速将hexo文章上传到github

作者: 水手0913 | 来源:发表于2016-08-26 10:10 被阅读184次

因为blog使用hexo并且托管在github上,每次发布文章的步骤都是:

1、打开cmd
2、cd到hexo所在目录
3、hexo new "文章题目"
4、hexo g
5、hexo d

时间久了,自然觉得麻烦,于是想有没有什么办法能用一个命令就可以把上面的步骤全部实现,于是想到了Wox,一个运行在win上的类似与alfred的软件。关于Wox请看:http://www.getwox.com/
可以通过自己写一个python插件来实现上述的过程。
先上代码:

#encoding=utf8
from wox import Wox
import os

class Main(Wox):
    def query(self,query):
        results = []
        results.append({
                        "Title": "hexo",
                        "IcoPath": "Images/hexo.gif",
                        "JsonRPCAction": {"method": "opencmd"}
        })
        return results
    def opencmd(self):
        os.system('cd/d G:\\kuaipan\\hexo_ryp && hexo g && hexo d')

if __name__ == "__main__":
    Main()

根据Wox作者的文档,需要有一个query方法,这里我对query方法的理解是,在Wox输入框内输入内容后,提示的东西。然后在这个方法内可以调用下面自定义的方法,这里我自定义的方法就是简单的一行python代码,进入hexo文件夹然后执行-g和-d两个参数。(参数作用请自行查看hexo文档)

到这里就可以快速将写好的文章上传到github了,但是还有一个问题就是,新建文章还是需要到hexo文件夹然后通过

hexo new "文章题目" 

命令来实现。这里我也暂时想到的解决方法是,再建立一个插件然后自动进入到hexo所在文件目录后执行hexo new。但是似乎hexo new后面无法跟变量,所以只能先实现快速进入hexo文件夹。然后手动输入建立文章。

代码如下:

#encoding=utf8
from wox import Wox
import os

class Main(Wox):
    def query(self,query):
        results = []
        results.append({
                        "Title": "hexo",
                        "IcoPath": "Images/hexo.gif",
                        "JsonRPCAction": {"method": "opencmd"}
        })
        return results
    def opencmd(self):
        os.chdir('G:\\kuaipan\\hexo_ryp')
        os.system('C:\\WINDOWS\\system32\\cmd.exe')

if __name__ == "__main__":
    Main()

注意这里不能像上面第一个插件那样使用命令

cd/d

因为这个命令是开启一个shell进程而不是打开shell窗口,比如你使用下面的命令

os.system('cd/d G:\\kuaipan\\hexo_ryp && hexo new "文章题目")

那么就会新建一个名为"文章题目"的文章,每次想新建文章都需要去手动修改这里面的代码,很麻烦。暂时没有想到很好的解决办法。

另外这个自动进入hexo文件夹的插件代码会造成Wox卡死,卡死是因为 os.system 没有执行完/返回
没有返回时因为你 cmd 窗口没有关闭。关闭cmd窗口即可,但是会报错。具体原因不明。

相关文章

网友评论

      本文标题:使用wox配合插件快速将hexo文章上传到github

      本文链接:https://www.haomeiwen.com/subject/hdzasttx.html