Fork me on GitHub

Hexo文章设置密码

Hexo文件是静态的,文章的所有信息都在页面中。加密需要用到js的阻塞机制,当页面中有调用alert();函数的时候,整个页面会停止运行,直到你点击确定之后,页面中的代码才会继续执行下去。

找到此路径下的文件:
themes-->next-->layout-->_partials-->head.swig
将下方代码添加在<meta>标签之后。

1
2
3
4
5
6
7
8
9
10
<script>
(function(){
if('{{ page.password }}'){
if (prompt('请输入文章密码','') !== '{{ page.password }}'){
alert('密码错误!');
history.back();
}
}
})();
</script>

page这个变量就是你在hexo new的时候生成文件中最顶部的东西。
修改文章头部标签文件:
hexo-->scaffolds/post.md
可以参照如下模式。

1
2
3
4
title: {{ title }}
date: {{ date }}
tags:
password: password

这样我们就好像使用静态页面完成了部分只有动态页面能完成的东西。

Your support will encourage me to continue to create!