前言
Hexo是一个基于nodejs的轻量级博客平台,由于它的简单、主题丰富等特点,收获了大量的拥趸。本博客也是基于Hexo,但是在使用Hexo部署和运营博客的过程中,发现了一些小问题。
问题
1、大部分使用Hexo的博主,都是把代码提交到github仓库。而且为了在不同环境都能方便编写博客,通常会把博客的源码(即博客配置文件,主题配置文件,样式布局文件等)和Hexo生成的代码(即public文件下的代码),同时提交到github仓库的不同分支上,如此在新环境下只要把博客源码check out下来即可。在这种情况下,我们博客配置文件的一些敏感信息,例如第三方插件需要的token,都会明码提交到公共仓库上,有一定的安全风险;
2、在做百度SEO的过程中,最有效的链接提交方式是主动提交,虽然Hexo有相关的插件,但是因为插件是注册到Hexo中的,耦合太重,使用不太灵活。
3、一些个性化的需求,例如本博客同时部署在了七牛云,有时候想看一下代码有没有正确同步,需要查看本地的文件数量和大小与七牛云上的是否相同。
解决
作为程序猿,问题有了,剩下的就是写代码解决了。由于Hexo是nodejs实现的,所以使用nodejs来解决这些问题应该是最符合的,可是nodejs并不在本人的技术栈中(- -)。人生苦短,我用Ptyhon,那么就使用简单的脚本语言Python来解决吧。
— talk is cheap show me the code —
配置文件加解密
这里使用rc4加密算法。
有了加密算法,接下来就是对文件的内容进行加解密,首先需要定义一个公共的密码用于生成密钥:
下面的方法使用到colorama
,为了在控制台输出颜色,可以自己取舍是否需要。
加密文件:
解密文件:
主动推送百度链接
需要用到的变量:
原理是获取文章的路径,拼接成url,这里要根据自己的博客配置作相应的修改:
这里是推送所有的文章,在最后的完整代码中会有推送指定文章的方法,因为需要接收命令行的参数,在最后一起展示,便于阅读。
查看文件数量和大小
|
|
完整代码
我们在写博客的时候,通常都是通过Hexo的命令来做一系列的操作,为了保持体验的一致性,我们的python助手也使用命令行操作。操作方式是:
- -c 操作命令,例如加密、解密、推送链接、查看文件夹
- -p 指定文件路径,需要加解密的文件、需要推送链接的文件、需要查看大小的文件夹
- -d 以默认方式执行,加解密默认操作的文件是网站配置和主题配置文件,链接推送默认是推送所有,查看文件默认是
public
文件夹
完整代码:
文件保存为hexo-helper.py,放到博客的根目录下,使用方法:
- 加密配置文件
python hexo-helper.py -c en -d
- 解密配置文件
python hexo-helper.py -c de -d
- 推送百度链接
python hexo-helper.py -c baidu -d
- 查看文件夹大小
python hexo-helper.py -c file -d
最后
python作为解析型语言,语法简洁,第三方包丰富,可以快速的满足我们的需求。日后再有新的需求,只需要再添加新的操作符和新的方法即可。最后的最后,本人接触python的时间不是很长,代码写的很丑,如有错误,请不吝指正。