Loading... ## 前言 无意间看到了 [hugo_encryptor](https://github.com/Li4n0/hugo_encryptor) 这个项目,为 Hugo 带来文章加密功能,虽然静态博客的加密可能不是那么完美,不过感觉这个也能拦住不少人了。所以尝试了一下,引入到自己博客中来。 [效果演示](https://blog.0e1.top/post/2019/03/this-is-hugo-encryptor/) ## 安装 安装过程项目里面作者介绍的挺清楚的,我直接搬过来好了([原地址](https://github.com/Li4n0/hugo_encryptor/blob/master/README-zh_CN.md))。我自己开始在 Windows 中尝试了,但是出现了各种乱七八糟的问题,边谷歌边解决但是最终还是有问题,我太菜了 :pensive: 。没办法,只好进 Linux 解决了,虽然不熟却也没有遇到奇奇怪怪的问题。 **环境依赖**:Python3 1. 下载 Hugo-Encryptor 并安装其所需要的依赖库 ```bash $ git clone https://github.com/Li4n0/hugo_encryptor.git $ cd hugo-encryptor $ pip install -r requirements.txt ``` 2. 将 `hugo-encryptor.py`放入博客根目录 ```bash $ cp hugo-encryptor.py /path/to/your/blog/hugo-encryptor.py ``` 3. 将`shortcodes/hugo-encryptor.html`放入博客`shortcodes`目录 ```bash $ mkdir -p /path/to/your/blog/layouts/shortcodes $ cp shortcodes/hugo-encryptor.html /path/to/your/blog/layouts/shortcodes/hugo-encryptor.html ``` ## 使用方法 1. 使用 `hugo-encryptor`标签包裹需要加密文章内容![](https://www.10101.io/usr/uploads/2021/06/1320048532.png) 2. 生成网站 ```bash rm -rf public #删除原来的 public 文件夹 hugo #重新生成 public 文件夹 ``` 3. 进行加密 ```bash python3 hugo-encryptor.py ``` 至此,文章就已经被加密好了,然后把 public 文件夹内容上传到服务器就好了。 ## 部署到 Netlify 因为我的博客托管在 Netlify 上,并没有用自己的服务器,所以想直接弄到 Netlify 上。仔细看了 Netlify 的文档,自己稍微折腾了一下弄成功了。 我在 Netlify 上选择的 `Build imge` 是 `Ubuntu Xenial 16.04 (default)`。 ### 放置依赖下载文件及设定版本号 1. 博客项目根目录下放置`runtime.txt`文件,内容设定为 Python 版本号,例如 `3.7` ; 2. 项目根目录下放置 `requirements.txt` 文件,内容为 ```bash pycrypto==2.6.1 beautifulsoup4==4.7.1 lxml==4.3.3 ``` 3. Netlify UI 中,在 **Settings** -> **Build & deploy** -> **Build environment variables** 中添加新的变量 `RUBY_VERSION`,值为 `2.6.2`(该 image 默认值,减少依赖下载)。 ### 放置 `py` 及 `html` 文件 该步骤和上面[安装](#安装) 2、3 步相同,将对应文件放置在对应位置即可。 ### 创建 `deploy.sh` 脚本 1. 在博客项目根目录下创建该脚本,内容为 ```bash #!/bin/bash rm -rf public #删除 public 文件夹 hugo #生成 public python3 hugo-encryptor.py #加密文章 npm run algolia #更新 algolia 数据 ``` algolia 为博客提供搜索(详见[采用 ALGOLIA 作为 HUGO 搜索方案](/2018/11/23/search-with-algolia-in-hugo/)),顺便一起加在里面,每次部署都更新索引数据。 2. 在 Netlify UI 中,找到 **Settings** -> **Build & deploy** -> **Continuous Deployment** -> **Build settings** -> **Build command**,将其改为 `./deploy.sh`。 这样,每次都能自动部署了。当然了,除了这种办法,还可以手动拖动 `public` 文件夹至 Netlify UI 的 **Deploy** 页面或者通过 Netlify-cli 直接部署 `public` 文件夹内容。相比较而言,上面的方式更加省事、自动化。 ## 问题及解决 在部署成功后,发现表格内容被 `hugo-encryptor` 标签包裹之后无法正常解析。因此,我提交了一个 [issue](https://github.com/Li4n0/hugo_encryptor/issues/1),最终在作者的帮助下找到了[解决方法](https://github.com/Li4n0/hugo_encryptor/issues/1#issuecomment-484164103)。如遇到相同情况的可以参考一下。 最后修改:2021 年 06 月 10 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏
8 条评论
救命,我的博客,点击验证,没动静,大佬们能看看吗
不好意思,没在用 hugo 了,自己再找找原因吧
这种加密只是在前端加密吧,数据还是被发送到浏览器了,也就只能防君子。
看不懂啊看不懂。
我用
GitHub Page
+Jekyll
搭的博客,也搞了个文章加密,但是不大好用。有人说能直接进去?,而且反正是放在 GitHub 上的,想看一翻就看到了
这种如果没有密码,是解不了密的吧。前端看到的是加密后的数据。如果不用密码再进行一次解密,这个数据还是安全的。只是防不住暴力破解。
你那个直接查看网页源代码就可以看到了
然后就禁右键和 F12 了