博客加密
这可能是 Hexo 生态圈中 最好用的 博客加密插件- 有时候需要写一些私密的博客, 通过密码验证的方式让人不能随意浏览,比如一些个人的文档,博客,或者日记等等
- 这在 wordpress, emlog 或是其他博客系统中都很容易实现, 然而 hexo 除外 :(
- 所以今天就推荐了这个hexo-blog-encrypt,可以实现这个需求
- github地址如下:https://github.com/D0n9X1n/hexo-blog-encrypt/tree/master
安装的步骤很简单,在hexo目录下执行npm进行相关插件的安装
npm install --save hexo-blog-encrypt
- 或
yarn add hexo-blog-encrypt
(需要) Yarn)
安装后快速使用步骤就是在相关的博客编辑文章的信息头部分加上password参数,编辑上密码就可以了
- 将 “password” 字段添加到您文章信息头就像这样.
1 | --- |
- 再使用
hexo clean && hexo g && hexo s
在本地预览加密的文章.
插件支持文章信息头加密还有标签加密,两种设置的优先级如下
文章信息头 > 按标签加密
文章信息头加密
1 | --- |
标签加密
在hexo博客的的_config.yml文件中添加如下指定参数内容
示例
1 | # Security |
对博文禁用 Tag 加密
只需要将博文头部的 password
设置为 ""
即可取消 Tag 加密.
Example:
1 | --- |
配置优先级
文章信息头 > _config.yml
(站点根目录下的) > 默认配置
关于 Callback 函数
在部分博客中, 解密后部分元素可能无法正常显示或者表现, 这属于已知问题. 目前的解决办法是通过自行查阅自己的博客中的代码, 了解到在 onload 事件发生时调用了哪些函数, 并将这些函数挑选后写入到博客内容中. 如:
1 | --- |
例子在: Callback 例子.
解密后的触发事件
感谢 @f-dong, 我们现在会在解密完成后触发一个 hexo-blog-decrypt
事件, 你们可以编写 callback 来监听该事件.
1 | // trigger event |
对 TOC 进行加密
如果你有一篇文章使用了 TOC,你需要修改模板的部分代码。这里用 landscape 作为例子:
- 你可以在 hexo/themes/landscape/layout/_partial/article.ejs 找到 article.ejs。
- 然后找到 <% post.content %> 这段代码,通常在30行左右。
- 使用如下的代码来替代它:
1 | <% if(post.toc == true){ %> |
禁用 Log
If you want to disable the logging, you can add a silent property in _config.yml
and set it to true. 如果你想要禁止使用 Log, 你可以在 _config.yml
中增加一个 silent 属性, 并将其设置为 true.
1 | # Security |
这样就会禁止如 INFO hexo-blog-encrypt: encrypting "{Blog Name}" based on Tag: "EncryptedTag".
的日志.
加密主题
之前, 我们尝试使用 template
关键字来让用户能修改自己的主题. 后来发现真不是一个好主意. 所以我们现在引入了主题: theme
关键字.
你可以简单的使用 theme
在 _config.yml
里或者文章头, 如下:
文章信息头
1 | --- |
在 _config.yml
示例
1 | # Security |
这里只列举了集中基本配置方法,其他详细配置方法请进入原github项目学习配置