gyk001 / hexo-qiniu-sync

Hexo七牛同步插件
MIT License
357 stars 41 forks source link

提交新版本 #8

Closed binsee closed 9 years ago

binsee commented 9 years ago

与以前的代码改变如下: 1、同步的实现方式

原来的实现方式是使用官方的qrsync程序包来进行同步指定目录 优点是在不用再额外找同步方式了,缺点是必须要额外手动配置独立的配置文件,不方便(千牛2014年新版本的qrsync配置文件更不直观)。

新的实现方案:使用node-qiniu扩展包来实现将上传到千牛 优点是所有的参数都可以直接在代码中设置好了,并且此扩展包有长期维护,支持更多千牛api功能的实现(如图像处理等)。 缺点是一次上传只能单个文件。

基于node-qiniu只能上传指定文件的原因,必须要明确得知每次需要上传的文件。而原代码中使用fs.watch方式对多层子目录的支持不大好,所以改用chokidar扩展包来实现对目录的监控。 chokidar扩展包对子目录改变监控做的比较好,不同的事件有明确的分类,详细到改变的文件路径与名称。考虑本插件主要是用于确保本地资源上传的,不参与文件删除,所以只监听了 文件添加、改变 这两个事件。

2、配置参数部分

所有需要用到的设置参数全部都可以在hexo目录的_config.yml配置文件中进行设定,更加省心。

3、其他

运行方式 当hexo进行生成时会自动监控指定的目录。 使用sync参数可以触发上传指定目录下所有资源文件。

目前待进行的事项:TODO LIST 1、静态资源目录位置问题

目录在source目录下:

  • 离线模式,正常生成发布
  • 在线模式,七牛空间上传的有,静态发布(github之类)也会有。占静态空间 目录在source目录外:
  • 离线模式,将无法得到资源文件
  • 在线模式,正常同步使用

2、缩略图等对图片处理的支持

需要结合七牛现在的接口规则,在插件预处理时识别md文档内图片标志附带参数,并转换成符合现在七牛规则的调用