通过脚本给 Hexo 文章页添加权限申明

第一次接触 Hexo 博客系统, 很多东西都靠网上前人的教程跟资料来学习完善. 最近想着给文章页添加权限申明, 网上搜罗了一下发现 hexo-addlink 这个插件可以实现.

但是它的参数跟用法有点不习惯, 于是就复制了作者的主要代码, 稍微修改之后自用.

创建脚本

在博客根目录创建 scripts 文件夹, 并新建脚本 copyright.js (脚本名字可自定义), 内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'use strict';

var hexo = hexo || {};
var config = hexo.config;
var copyright = config.copyright; // 此处为 hexo 配置文件中的配置参数, 名称可自定义

hexo.extend.filter.register('before_post_render', function (data) {
if (!copyright || !config.url || data.layout !== 'post') {
return data;
}

var domain = config.url;
var href = domain + '/' + data.path;
var text = copyright.text || ''
var hrefText = text
.replace('${url}', domain) // 博客地址
.replace('${link}', ' [' + href + '](' + href + ') '); // 文章地址

data.content += '\n\n' + hrefText + '\n\n';
});

配置暴露了两个参数可供使用, 用法为 ${param}

url 博客地址

link 当前文章地址

修改配置文件

在博客配置文件 _config.yml 中添加申明内容(此处以贪狼的博客作为示例)

1
2
3
4
5
copyright:
text: |
<hr>

__本文作者__:[贪狼](${url})<br>__本文地址__:${link}<br>__版权声明__:本博客所有文章除特别声明外,均采用 [CC BY-NC-SA 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/) 许可协议。转载请注明出处!

text 后面的 | 为了保留配置内容的换行, 以内容能被 markdown 正常渲染

结语

至此权限申明的插件就完成了, 如果你有其他参数需求, 可以通过 replace 方法添加新的参数.

如果你有其他脚本需求, 也可以参照官方文档, 在 scripts 下面添加其他脚本来完善博客的功能. (这里吐槽一下官方文档, 没有注明脚本存放的位置, 当时试了 source 文件夹, 并不能用, 最后发现要放在根目录).