hexo博客一键部署脚本工具
由于hexo框架生成的是静态页面,因此每次上传博客都需要在git bash手动输入一次hexo clean && hexo g && hexo d的命令,十分麻烦,因此作者让ai写了一个AutoHotkey(一种脚本生成语言)脚本工具,该工具可以自动打开git bash并执行清理旧文件、生成静态文件、部署到服务器、一键部署(清理+生成+部署)、启动本地服务器等命令。本文介绍了从准备到编译并运行该工具的流程,并附上工具的源代码:
一、准备
Windows系统
AutoHotkey只支持Windows系统下载并安装node.js、git、hexo框架
hexo是基于Node.js(一种JavaScript运行环境)开发的,而hexo生成的静态文件依赖Git(一种分布式版本控制系统)来推送和部署到Github(一个代码托管平台及社区)上,所以需要安装Node.js和Git。
node.js官网: https://nodejs.org/zh-cn
git官网: https://git-scm.com/
hexo官网: Hexo
安装教程:查看官网的文档/自行百度/问ai,建议问ai,这样有报错也可以直接复制过去问ai,ai推荐用腾讯元宝,记得模型换成deepseek并开启联网搜索。
主题推荐(可跳过)
hexo默认的界面不太好看,而hexo有非常庞大的生态,在github上可以找到许多主题。推荐两个好看美观的主题:
下载并安装AutoHotkey
本文工具使用的是v1版本的AutoHotkey,下载v1版本的就行。AutoHotkey官网: AutoHotkey
二、编译
新建.ahk文件
下载并安装AutoHotkey后,在电脑里随便一个目录下右键-新建-文本文档,扩展名改为.ahk用记事本打开
复制粘贴源代码,保存退出
代码如下: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
SetWorkingDir C:\Users\25834\Desktop\my-blog ; 强制指定博客根目录
; 创建GUI界面
Gui, Add, Button, x20 y20 w100 h30 gClean, 清理旧文件
Gui, Add, Button, x140 y20 w100 h30 gGenerate, 生成静态文件
Gui, Add, Button, x260 y20 w100 h30 gDeploy, 部署到服务器
Gui, Add, Button, x20 y70 w150 h30 gFullDeploy, 一键部署(清理+生成+部署)
Gui, Add, Button, x180 y70 w150 h30 gServer, 启动本地服务器
Gui, Add, Edit, x20 y120 w340 h100 vLog +ReadOnly, 操作日志:
Gui, Show, w380 h250, Hexo自动化部署工具
return
; 清理旧文件
Clean:
RunWait, "C:\Program Files\Git\git-bash.exe" --cd=C:\Users\25834\Desktop\my-blog -c "hexo clean",, Hide
GuiControl,, Log, % "[" A_Hour ":" A_Min ":" A_Sec "] 已清理旧文件`n"
MsgBox, 64, 完成, 已清理旧文件!
return
; 生成静态文件
Generate:
GuiControl,, Log, % "[" A_Hour ":" A_Min ":" A_Sec "] 正在生成静态文件..."
RunWait, "C:\Program Files\Git\git-bash.exe" --cd=C:\Users\25834\Desktop\my-blog -c "hexo generate",, Hide
GuiControl,, Log, % "[" A_Hour ":" A_Min ":" A_Sec "] 静态文件生成完成!`n"
MsgBox, 64, 完成, 静态文件已生成!
return
; 部署到服务器
Deploy:
GuiControl,, Log, % "[" A_Hour ":" A_Min ":" A_Sec "] 正在部署到服务器..."
RunWait, "C:\Program Files\Git\git-bash.exe" --cd=C:\Users\25834\Desktop\my-blog -c "hexo deploy",, Hide
GuiControl,, Log, % "[" A_Hour ":" A_Min ":" A_Sec "] 部署完成!`n"
MsgBox, 64, 完成, 已部署到服务器!
return
; 一键部署
FullDeploy:
MsgBox, 36, 确认, 确定要执行完整部署吗?`n(包含清理、生成、部署)
IfMsgBox No
return
GuiControl,, Log, % "[" A_Hour ":" A_Min ":" A_Sec "] 开始一键部署..."
RunWait, "C:\Program Files\Git\git-bash.exe" --cd=C:\Users\25834\Desktop\my-blog -c "hexo clean && hexo generate && hexo deploy",, Hide
GuiControl,, Log, % "[" A_Hour ":" A_Min ":" A_Sec "] 部署完成`n"
MsgBox, 64, 完成, 一键部署完成!
return
; 启动本地服务器
Server:
Run, "C:\Program Files\Git\git-bash.exe" --cd=C:\Users\25834\Desktop\my-blog -c "hexo server -p 4001",, Minimize
GuiControl,, Log, % "[" A_Hour ":" A_Min ":" A_Sec "] 已启动本地服务器`n"
return
GuiClose:
ExitApp- 右键文件,选择Compile script(GUI)
如果前面安装了AutoHotkey,此时会弹出一个Converter界面,在Options-Base File选择AutoHotkeyU32.exe,点击Convert,会在同一文件夹下生成对应的.exe文件
Converter界面 生成了.exe文件 - 右键文件,选择Compile script(GUI)
三、运行
运行.exe文件即可
