本站博客基本搭建美化完成了, 我本人不太喜欢花里胡哨的博客,
后续也没有计划加更多的CSS或者JS等动态展示的功能,
不过看别的博客都有个评论的功能, 我觉得挺好玩, 记录一下过程
Hexo
博客 NexT 主题的安装使用 | Julian's blog
第三方评论系统之我见
| 云游君的小站
快速上手 |
Waline
注册LeanCloud账号(已弃用)
个人更倾向于数据存储在自己手中, 官方的部署方法已弃用
进入LeanCloud国际版, 进行注册, 🔗
LeanCloud国际版
填写用户名, 密码,
邮箱等等,然后需要验证邮箱并添加手机号,
不然无法创建App
创建应用
创建应用
创建完成后, 点击应用设置⚙
进入应用设置
左侧tab页, 点击应用凭证,
然后分别复制AppID+AppKey+MasterKey
应用凭证
准备Docker环境
多数据库服务支持
| Waline
因为我的博客体量并不是很大, 因此我选用SQLite作为数据库, 参照官方手册,
需要先下载初始文件
| 环境变量名称 |
必填 |
默认值 |
备注 |
SQLITE_PATH |
✅ |
|
SQLite 数据库文件的路径,该路径不包含文件名本身 |
SQLITE_DB |
|
waline |
SQLite 数据库文件名,若文件名变化需要修改该字段值 |
SQLITE_PREFIX |
|
wl_ |
SQLite 数据表的表前缀 |
JWT_TOKEN |
✅ |
|
用户登录密钥,随机字符串即可 |
使用Docker构建应用后端服务器
独立部署
| Waline
官方Dockerfile: waline/Dockerfile
at main · walinejs/waline
官方手册推荐方法LeanCloud部署(已废弃)
1 2 3 4 5 6 7 8 9
| LEAN_ID='xxxx' LEAN_KEY='xxxx'
docker run -d \ -e LEAN_ID=${LEAN_ID} \ -e LEAN_KEY=${LEAN_KEY} \ -p 8360:8360 \ lizheming/waline
|
- 使用SQLite作为数据库部署, 通过官方Dockerfile观察可以发现,
全部应用放置于
/app目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| # 生成随机密码 RANDOM_TOKEN=$(openssl rand -hex 16) # 进入博客目录 cd blog
# 下载SQLite文件 wget "https://github.com/walinejs/waline/raw/main/assets/waline.sqlite"
# 指定运行变量 docker run -d \ -e SQLITE_PATH=/app \ -e SQLITE_DB='waline' \ -e JWT_TOKEN=${RANDOM_TOKEN} \ -v $PWD/waline.sqlite:/app/waline.sqlite \ -p 8360:8360 \ lizheming/waline
# 输出注册地址及Token echo "请通过以下地址进行注册, 首个注册用户会成为管理员" echo "Register URL: http://localhost:8360/ui/register" echo "JWT_TOKEN: ${RANDOM_TOKEN}"
|
为Hexo博客增加支持
官方提示支持NexT主题方式: waline/packages/hexo-next
at main · walinejs/waline
一篇说明非常详细的博文: Hexo
博客 NexT 主题的安装使用 | Julian's blog
unpkg.com国内代理: unpkg.com太慢了
unpkg.com国内镜像地址_WonThing的博客-CSDN博客_unpkg国内镜像
Github原文: blog/国内高速前端
Unpkg CDN 替代方案.md at main · lecepin/blog
安装主题支持包
1
| npm install @waline/hexo-next --save
|
添加以下内容到_config.yml中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
waline: enable: true
serverURL: https://comments.chowrex.com:5001
libUrl: https://blog-static.chowrex.com/waline/waline.js cssUrl: https://blog-static.chowrex.com/waline/waline.css
locale: placeholder: 留下点足迹呗~
commentCount: true
pageview: false
emoji: - https://npm.elemecdn.com/@waline/emojis@1.0.1/weibo - https://npm.elemecdn.com/@waline/emojis@1.0.1/alus - https://npm.elemecdn.com/@waline/emojis@1.0.1/bilibili - https://npm.elemecdn.com/@waline/emojis@1.0.1/qq - https://npm.elemecdn.com/@waline/emojis@1.0.1/tieba
meta: - nick - mail - link
requiredMeta: - nick
lang: zh-CN
pageSize: 10
|
搞完CSS和JS文件, 发觉还是应该把所有的emoji也搞到自己的七牛云上,
避免饿了么万一跑路, 当然是不可能的, 以防万一
这个是官方的Repo: walinejs/emojis: Emojis Repo
for Waline
七牛云官方SDK: 软件开发工具包 -
七牛开发者中心
七牛云官方Python手册: Python SDK_SDK
下载_对象存储 - 七牛开发者中心
首先进入密钥管理,
添加密钥, 然后复制AKSK
创建密钥
实现七牛云批量上传功能
按照官方给的文档, 修改一下代码, 实现批量上传功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
""" Created on Thu May 19 10:15:08 2022
@author: Rex Chow """
import os from pathlib import Path from qiniu import Auth, put_file, etag
ACCESS_KEY = 'AK' SECRET_KEY = 'SK'
BUCKET_NAME = 'BUCKET'
PREFIX = 'waline/emojis'
LOCAL_DIR = Path('~/Download/emojis-main/')
req = Auth(ACCESS_KEY, SECRET_KEY)
for root, dirs, files in os.walk(LOCAL_DIR): for file in files: loc_path = Path(os.path.join(root, file)) rel_path = os.path.relpath(loc_path, start=LOCAL_DIR)
key = os.path.join(PREFIX, rel_path) print(f'Uploading: {loc_path} -> {key}')
token = req.upload_token(BUCKET_NAME, key, 600) ret, info = put_file(token, key, loc_path, version='v2') assert ret['key'] == key assert ret['hash'] == etag(loc_path)
|
修改_config.yml, 更新使用七牛云
1 2 3 4 5 6 7 8 9 10 11 12
| ... emoji: - https://blog-static.chowrex.com/waline/emojis/weibo - https://blog-static.chowrex.com/waline/emojis/alus - https://blog-static.chowrex.com/waline/emojis/bilibili - https://blog-static.chowrex.com/waline/emojis/qq - https://blog-static.chowrex.com/waline/emojis/tieba - https://blog-static.chowrex.com/waline/emojis/tw-emoji ...
|
完成, 现在评论可以以最快速度载入~