blog
1 部署
- 安装 git、node.js,参考 hexo 官网,windows、linux 有区别。git 设置 sock5 代理,见 git
- github 创建 username.github.io 仓库,实测要用官方的流程设置一下主题才能开通。添加 ssh 密钥
- 安装 hexo 、主题、插件,主题可根据star 排名来选择
1 | npm install hexo |
1.1 Google 收录
- 先创建 Google Analytics,添加 tracking_id 到主题配置文件,注意广告拦截和浏览器拦截
- 再创建 Google Search Console,用 Google Analytics 验证所有权
- 在 Google Analytics 选择媒体资源,Search Console 关联,进行两个产品的关联
- 在 Search Console 中提交站点地图 sitemap.xml
2 使用
- 原则是避免手动配置 front-matter,尽量自动生成,保持界面简洁易用
- 常用命令
1
2
3
4
5
6
7
8
9
10
11
12# 启动 server 预览
npx hexo clean && npx hexo s --p 10000
# 生成(只在确认生成文件时会用到)
npx hexo g
# 部署
# 不加 --generate 会导致修改不推送
# 下划线 _ 开头的文件永远不会被推送
# 此外对于 exclude 的文件,clean 后首次不推送,再执行一次就可以推送了
# 所以保险起见每次执行两次这个命令
npx hexo deploy --generate
# 可清除博客的更新历史记录,会导致全量部署
rm -rf .deploy_git - 后期,如果流量大,图片和 asset 放到 github 其它 repo 上,避免超过 github pages 流量 100G/月 的限制
2.1 编写插件
- 插件的 优先级 值越低越先处理原始 md 文件,因此低优先级可避免被其它插件的处理结果影响
3 维护
- 备份:hexo 目录下所有内容(文章除外) git 记录修改,push 到 github 上
- 还原:
- 装 git、node
- node 用 ppa 装最新版本 18.x
- 从 github clone,linux 环境要卸载原 hexo,重新安装(不清楚为何不跨平台),其它插件看起来没问题
- db.json 报错:
手动创建
blog\node_modules\mime-db\db.json,文件内容空 object
{}` - 这个 linux 环境作为 linux branch push 到 github 来备份
- db.json 报错:
- 装 git、node
- 更新博客
- 通过 rclone 挂载 GoogleDrive,再
ln -s
创建软链接到source/_posts
- rclone 从官网下载 arm 版本,配置按照官网和向导走就可以,很全面
- sudo apt install fuse3,rclone mount 需要
- rclone 退出而没自动 umount 的情况(文件被占用),手动
sudo umount
一下
- rclone 退出而没自动 umount 的情况(文件被占用),手动
- 按 rclone config 提示,获得 GoogleDrive API 相关参数
- 创建 gd 文件夹,只读挂载
./rclone --cache-dir=rc_cache --temp-dir=rc_temp mount gd: gd --vfs-cache-mode full --read-only
- rclone 放到 screen 里面运行,.zshrc 添加
screen -x
,登录后就恢复上次的环境 - 配置 cron 每两小时自动
npx hexo deploy --generate
更新博客 - 在某些频繁写入的场景下,需要在本地保留一份,然后利用 rsync 和 cron 来周期同步
rsync -av --update --log-file=/home/ubuntu/sync_log.txt /home/ubuntu/blivedm/rooms/ /home/ubuntu/rclone-linux/gd-db/rooms/
- 通过 rclone 挂载 GoogleDrive,再