加密 Hexo 博文

简介

尝试着想一下,你写了一篇博客,但是,出于某种原因,不太希望每一个人都可以看到他。所以你常常会为这种文章设置一个密码,其他人需要输入密码才可以访问这篇博客。对于 Typecho 或者 Wordpress 来说,这很容易,但是对于 Hexo 来说,之前并没有一个类似的功能。

于是,hexo-blog-encrypt 就这样诞生了!

Demo

开始

  • 首先, 你需要确保你的文章中含有内容(不能为空,或者只包含空格)
  • 在 Hexo 根目录的 _config.yml 启用插件:
1
2
3
4
# Security
##
encrypt:
enable: true
  • 在你需要加密的 Hexo 博文头部添加:passwordabstractmessage
1
2
3
4
5
---
password: PassWord
abstract: This blog is encrypted.
message: You must enter the password to read.
---
  • password:是该博客加密使用的密码。
  • abstract:是该博客的摘要,会显示在博客的列表页。
  • message:这个是博客查看时,密码输入框上面的描述性文字。
  • 最后 hexo clean + hexo g 查看效果。

高级

  1. 对 TOC(目录) 进行加密,以主题 Landscape 为例:

    • 找到目录 hexo/themes/landscape/layout/_partial 下的 article.ejs
    • 找到 <% post.content %> 这段代码,一般 30 行左右
    • 替换:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <% if(post.toc == true){ %>
    <div id="toc-div" class="toc-article" <% if (post.encrypt == true) { %>style="display:none" <% } %>>
    <strong class="toc-title">Index</strong>
    <% if (post.encrypt == true) { %>
    <%- toc(post.origin, {list_number: true}) %>
    <% } else { %>
    <%- toc(post.content, {list_number: true}) %>
    <% } %>
    </div>
    <% } %>
    <%- post.content %>
  2. 修改加密模板:

  3. 回调:

    • 若想要在文章解密之后调用额外代码,可以使用回调,但是需要自己编写代码。
    • 详情请见官方文档
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×