Github-Hexo-Qiniu-Sync
原文GitHub插件:
hexo-qiniu-sync
使用插件,与github+hexo+nexT结合,图片上存到七牛,此文转载GitHub上说明。
安装
在你的hexo主目录下运行以下命令进行安装:
1 | npm install hexo-qiniu-sync --save |
添加插件配置信息到 _config.yml 文件中:
1 | plugins: |
这里对配置中的几个需要注意的参数进行说明:
offline参数:如果要使用同步到七牛空间的静态资源,请设置为
false。如果只想浏览在本地的静态资源文件,则设置为true。sync参数:如果你想关掉七牛同步,将此参数设置为false即可,不过一般用不到修改这个参数。
dirPrefix参数:将资源上传到七牛空间内这个目录下(说是目录会容易理解点),默认为
static目录。urlPrefix参数:七牛空间地址的前缀,会按默认格式自动生成地址,所以此参数可省略。
默认格式为http://bucket_name.qiniudn.com/static,如果你的七牛空间使用自定义域名或域名不是此格式的,请配置此参数。
当你设置了dirPrefix参数后,如static。则此url地址必须加上目录后缀/static, 即http://bucket_name.qiniudn.com/static,否则静态资源将无法访问。local_dir参数:只填写一个目录名称即可,建立在hexo博客的主目录,不需要使用子目录。
当你在配置中填写好文件夹后,运行hexo时,会自动建立对应的目录。
如果你了解hexo文件夹的关系,担心这样会导致离线模式不能查看到图片,我可以告诉你你不需要担心这个问题。
在你以离线模式运行时,会自动使用软连接/联接方式帮你建立文件夹的引用,可以让你的离线浏览节省一倍的空间。update_exist参数:如果你的静态文件会进行修改或替换,并需要更新七牛空间上原先上传的文件,则设置为
true。
是否更新空间上已上传的文件,是按照对比文件大小是否相同或者本地文件在上传到七牛空间之后进行过修改的规则进行判断的。image:extend参数:这是个特殊参数,是文章内使用
qnimg标签引用图片的默认图片处理操作。请参考 **七牛开发者中心-图片处理**。
可以使用 基本图片处理(imageView2)、高级图片处理(imageMogr2)、图片水印处理(watermark) 这三个图片处理接口,多个接口内容之间用|间隔。
例如?imageView2/2/w/500即生成宽度最多500px的缩略图。
使用标签
1 | {% qnimg imageFile attr1:value1 attr2:value2 'attr3:value31 value32 value3n' [extend:?imageView2/2/w/600 | normal:yes] %} |
jnimg标签的图片处理: >如果你在_config.yml文件中配置了extend字段,则默认会对插入的图片进行对应的处理。
如果不想对一个图片进行处理,则可在jnimg标签内增加normal:yes参数,则使用原图,不进行图片处理。
如果只对当前图片进行处理,则可在jnimg标签内增加extend:?imageView2/2/w/600样式的配置参数。
当_config.yml文件中和jnimg标签内都定义了extend参数,则只会使用jnimg标签的extend参数。
请参考**七牛开发者中心-图片处理** ,可以使用 基本图片处理(imageView2)、高级图片处理(imageMogr2)、图片水印处理(watermark) 这三个图片处理接口,多个接口内容之间用|间隔。
Demo
1 |
将会被渲染成:
1 | <img title="图片标题" alt="图片说明" class="class1 class2" src="http://gyk001.u.qiniudn.com/images/test/demo.png?imageView2/2/w/600"> |
命令行
作为一个带命令行功能的插件,漏掉了命令行的使用说明不是好习惯。 本插件命令行为 hexo qiniu ,所支持的子命令有:
info(简写i)功能:显示插件版本,作者及Github地址信息等
sync(简写s)功能:同步静态资源到七牛空间
sync2(简写s2)功能:同步静态资源到七牛空间,且会同步上传那些本地与七牛空间有差异的文件。
这个命令会无视update_exist配置。
对比规则请看update_exist配置参数说明。
同步静态资源
当需要把静态资源同步到七牛空间中时,有如下几种方式可以同步资源:
启用本地服务器.即使用
hexo server命令(简写为hexo s)当以本地服务器模式启动后,会自动监测
local_dir目录下的文件变化, 会自动将新文件进行上传。
如果文件进行了修改,但设置中没有启用update_exist配置,则不会更新到七牛空间。使用命令行命令(
sync|s|sync2|s2)命令行命令会扫描
local_dir目录下的文件,同步至七牛空间。
备注:使用生成(generate)或部署(deploy)命令时,会提示需要上传的文件数量:
[info] Need upload file num: 0
小技巧
文章模板
如果你经常在文章内插入图片,你可以修改文章模板,将空白的图片插入标签粘贴进去。
这样新建立的文章就有空白标签可以让你直接填写图片路径就好了,会很省事。
文章模板文件:./scaffolds/post.md
图片标签{% qnimg test/demo.png title:图片标题 alt:图片说明 ‘class:class1 class2’ %}图片处理样式
在前边的内容里,已经介绍了图片处理参数,下面来介绍一个更省事的技巧。
如果你经常使用的图片效果是固定的,你可以通过设置数据处理样式来达到灵活的控制。- 首先登陆七牛空间,选择存储空间后,再选择
数据处理菜单。 - 设置分隔符。默认的
-即可。 - 点击
新建样式按钮,根据提示创建一个处理样式。 - 创建样式完毕后,你就可以将
extend参数设置为分隔符+样式名称了。
如你设置的分隔符为-,样式名称为new,则extend参数就是-new了。
简单吧?
你可以根据自己的需要,建立多个样式,然后在文章内使用时,为不同图片标签设置 不同的extend参数,来达到不同的显示效果。
- 首先登陆七牛空间,选择存储空间后,再选择
常见问题
WINDOWS系统下使用离线模式,运行
hexo s后,在文章页面中不能无法看到引用的静态资源图片
如:local_dir参数设置为static,运行hexo s后source目录下没有出现一个名字为static的目录链接。首先检查以下内容:
- 所在的磁盘的文件系统是否为
NTFS。因为 WINDOWS 下NTFS系统才支持目录链接。 - 运行
hexo s时,是否以管理员身份运行的。目录链接操作需要管理员身份才可以执行,
如果你是在打开的cmd命令行中执行hexo s的,需要以管理员身份运行cmd才可以。
如果你是运行批处理文件运行( 例如内容为hexo s),请批处理文件的属性中设置为以管理员身份运行。 - 不要把
local_dir参数指定的目录设置为source目录的子目录,应当为source目录的同级目录。 - 如果你是FAT32格式的磁盘,你只使用离线模式的话,可以把
local_dir参数设置为source目录的子目录, 这样在hexo s时,才可以正常预览。
- 所在的磁盘的文件系统是否为
在同步模式下,不能同步,出现报错为
[error] SyntaxError: Unexpected end of input请检查设置中的
access_key与secret_key是否正确,以及是否可用。