关于博客的图片#
-
1.少量图片可以丢到根文件的
source/images文件夹下,算是可以解决,但不便于管理,并不推荐。 -
2.多一点的图片可以丢到当前文件的同目录同名文件夹下。在
_config.yml打开这个注释post_asset_folder: true就会在hero new xxx的时候自动创建xxx目录放静态资源。(但是费劲,url变化后有问题)-
hexo新版不支持
的正确渲染了,无法保证路径可以渲染成功。官方推荐用他的标签:1
2
3{% asset_path slug %}
{% asset_img slug [title] %}
{% asset_link slug [title] %} -
但是这种方式不是标准markdown语法,无法在我们的markdown编辑器里面正确显示,真是太low了,也不推荐。
-
-
3.所以建议使用图床神器:ipic、和picgo 戳这里:https://github.com/Molunerfinn/PicGo
- 大体原理就是可以一键自动上传图片到github或者gitee图床,妈妈再也不用担心我们的图片了。下面是picgo和typora编辑器配合的配置,爽到爆.
Linux 下 typora+picgo图床#
picgo是node写的一个图片上传工具,分为app和命令行(picgo-core),下面会介绍picgo安装使用
PicGo App:#
- 下载app:
https://github.com/Molunerfinn/PicGo/releases - app只是为了测试和生成配置文件,后续使用的时候我们还是会用命令行模式
- 下载后根据想用的图床安装对应的插件,下面有gitee/gitlab/兰空自建图床/amazon s3协议OSS

oss上传更推荐s3-lls插件,更稳定:

基于Gitlab图床#
因为gitee图床已经废了,官方加了防外链(真是太辣鸡了),github国内访问速度太慢,下面试试gitlab:
- 首先在PicGo里面安装
gitlab-files插件: - 然后去gitlab注册账号,创建项目
- 在项目管理页面复制项目id,和可以访问此项目的token
- 划分路径,比如我们上传到gitlab此项目的
/new/年份/下面 - 然后在
上传区测试可以上传成功.

基于Backblaze的图床:#
Backblaze 提供的云存储服务价格低廉,而 Cloudflare 则可以提供稳定且快速的 CDN 服务,两者之间的数据传输也是免费的,使用 Picgo 结合 s3插件 则可以轻松解决图片上传到 Backblaze 的问题。
Backblaze+CF+域名就行了,具体实践参见这里
这里说一下大概流程:
CF操作#
- DNS解析自定义域名到bz2的文件预览域名
- CF开启文件缓存,减少对bz2的读取流量。
- CF规则,开启url重写隐藏bucket名字。
- 也就是在CF-rules-overview,添加一个转换规则,把请求路径后自动加上bucket名,增强安全性。
- 页面请求如https://imagebed.com/XXXXX.jpg CF的rule会自动把收到的这个请求转发到https://f005.backblazeb2.com/file/BUCKETNAME/XXXXX.jpg
- CF增加response header转换规则,remove掉bz2的特征header
picgo中安装典型配置

picgoApp与picgo命令行配置文件交互#
重点来了!
在picgoApp的插件设置里面找到打开配置,就能看到生成的配置文件~/.config/picgo/data.json:
1 | { |
注意看配置文件里面我们UI安装的
“picgoPlugins”: {
“picgo-plugin-gitee-uploader”: true,
“picgo-plugin-gitlab-files”: true,
“picgo-plugin-lankong”: true,
“picgo-plugin-s3”: true
}
这几个视需求,一会儿需要在命令行也安装
Typora图像上传配置,及PicGo 命令行#
-
windows可以直接在typora选exe文件,即可忽略下方picgo命令行部分

linux需要使用命令行:#
-
typora需要使用命令上传,所以需要安装命令行.先安装node,再
npm install picgo-core -g -
因为我们用gitlab图床,所以执行
npm install picgo-plugin-gitlab-files -g安装对应插件
需要把上面picgo App UI生成的配置文件片段复制到picgo command的配置文件’~/.picgo/config.json’里
1 | { |
-
配置了之后可以测试一下
/path/to/node /path/to/picgo upload /path/to/some_image.jpeg,如果成功并返回图片url就ok了. -
然后找到picgo可执行文件,在typora配置“上传服务”:
- 用户自定义命令,
/path/to/bin/node /path/to/node_modules/picgo/bin/picgo upload

- 用户自定义命令,
关于博文加密#
个别私有博文不方便暴露,需要给博文添加密码,因为我们没有动态服务器去存储密码,只能是在渲染的时候加密,浏览的时候前台js解密。
经过搜寻找到一个工具叫做hexo-blog-encrypt,在Github这里。它会使用对称加密把博文的内容真正加密成密文,只有用户输入密码正确后才会解密成功。
中文介绍在这里,使用起来也很简单,在hexo的主目录安装加密插件:
1 | cnpm install --save hexo-blog-encrypt |
安装完插件后,在hexo的主目录配置一下这个插件_config.yml,添加加密的安全配置:
1 | # Security |
然后编辑一下博文的模板文件,把密码字段加到头上:
1 | vim scaffolds/post.md |
就像下面这样,password框里如果是空的就不会加密,否则就会加密:
1 | --- |
这样在列表的时候摘要会显示上面的abstract中的内容,输入框提示message消息。