简介

Hugo Encryptor 是咱在 GitHub 上发现的一个基于 Python 3 的项目,它能够方便地加密你的 Hugo 博客文章。

这里直接摘录项目简介:

Hugo-Encryptor 是一款能够帮助作者保护文章内容的工具。它使用 AES-256 来对文章的内容进行加密,并且通过在文章中嵌入内联 JavaScript 代码来验证读者输入的密码是否正确。没有正确的文章密码,读者将无法看到文章的加密内容。

使用方法

直接使用

首先配置好 Python 3 环境,然后参考作者给出的 使用文档 即可,这里就不再赘述了。

使用 Docker

为了方便使用以及加快在 CI 上的构建速度,咱将所需要的环境打包成了 Docker 镜像,你可以参考以下步骤更快速地实现加密:

  1. 安装 Docker。这部分请自行参考 官方文档 或者这份 中文文档
  2. shortcodes/hugo-encryptor.html 放入博客 shortcodes 目录:
cd /path/to/your/blog/  # 进入博客根目录

mkdir -p layouts/shortcodes/  # 如果没有 shortcodes 目录,则先创建

wget -P layouts/shortcodes/ https://raw.githubusercontent.com/Li4n0/hugo_encryptor/master/shortcodes/hugo-encryptor.html  # 下载模版到 shortcodes 目录
  1. 将文章中需要加密的部分用 {{% hugo-encryptor %}} 标签包裹起来,具体格式请参见 官方文档
  2. 最后使用 Docker:
docker run -v $(pwd):/blog hly0928/hugo_encryptor:latest

对比一下,使用 Docker 时 GitHub Actions 的构建时间有了大幅缩短:

其实是因为不用 Docker 的话有 80% 的时间都浪费在了安装依赖上。

一点小问题

目前还不支持单篇文章中多个部分的加密,不过咱已经提了 issue 了…反正咱是修不来只能等作者解决啦。

另外,如果你 修改 了 Hugo 默认的 rss.xml 以实现全文输出的话,会导致加密内容在 index.xml 中泄露,不过咱已经在 Docker 版本中作了修正。

更新:以上问题皆已被修复,感谢开发者。