Python3 实现。
Hexo的可视化界面,摆脱命令行。
很粗糙,请见谅。
目前有个BUG:有时候使用GUI界面创建的文章,在打开后保存(或自动保存)时,内容会丢失,但只要撤回一下内容就回来了。这个BUG可能由于使用了动态生成链接的插件导致的,也可能都会出现。它还是不一定会出现又出现的频率特别高:)
包 | 操作 |
---|---|
tkinter | 实现GUI界面 |
os | 进行命令操作 |
threading | 进行多线程操作 |
win32api | 实现界面居中 |
按钮名称 | 对应命令 |
---|---|
重新生成静态文件 | hexo g |
清除本地public文件 | hexo clean |
创建文章 | hexo n post <title> |
提交仓库 | hexo d |
本地预览 | hexo s |
退出 | 退出本程序 |
-
tkinter
、os
、threading
都是内置包,因此仅需安装win32api
,Python3 使用
pip3 install pypiwin32
安装即可。如安装失败,请手动安装
whl
文件。 -
更改 if __name__ == '__main__': 里初始化 Hexo 时的路径输入。
改为自己博客 站点配置根路径 即可使用!
-
输入 标题、标签、分类 直接创建!
标题 不可为空!,标签和分类 可以为空。
如果标题中出现 空格 会被替换掉。出现 **、?/\<>***都会被替换为 - 。
-
多个标签/多个分类使用空格分割! 多个标签/多个分类使用空格分割! 多个标签/多个分类使用空格分割!
-
如果想要使用 .exe 可执行文件,需自行转换(因为需要配置自己的路径)。
可使用 pyinstaller 包进行转换,
pip install pyinstaller
。下面有关于本工具的打包说明。
-
除本地预览为后台开启,其他都会有控制台出现,方便查看执行过程。
-
本地预览暂时不支持关闭(因为是后台执行,虽然也不需要关,毕竟可以一直本地访问),
即使程序退出,本地服务也不会关闭。
-
因为本地服务有可能在后台运行,因此点击本地预览时将会使用taskkill
杀掉 占用4000
端口的服务,然后才开启Hexo
本地服务。 -
开启
Hexo
本地服务时,本来的操作是端口被占用就杀掉端口,但是首先风险大,如果端口被很重要的东西占用杀掉的话后果严重,其次如果使用命令查占用端口的 pid 和杀掉 pid 占用会在使用 pyinstaller -w 打包后无法使用,因为命令查端口占用需要使用控制台,而如果打包去掉 -w 正常使用但是使用时控制台的黑窗口会一直有太丑了。因此,最后采用了无论端口是否占用,都执行hexo s的方法,这样如果命令执行错误,会提示端口已被占用。
-c 参数 使用控制台,无界面(默认)
-w 参数 使用窗口,无控制台.如果程序里有使用到控制台(如print)的就不可以使用-w,
否则会报错 '''failed to excute script xxx'''
如果想要捕捉错误信息可以先用控制台捕捉,没有报错后再使用无控制台.
-D 参数 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。
-F 参数 打包成一个exe文件
-p 多文件打包时,以-p [其他.py] 的形式跟在主文件后
'''如:pyinstaller -w -F main.py -p view.py -p other.py'''
-i 参数 修改打包后的exe图标,图标应放在py同级目录下,需要是ico格式,只改后缀不可用.
'''如:pyinstaller -w -F -i zzz.ico main.py -p view.py -p other.py'''
- 将配置完毕的 Hexo.py 与 favicon.ico 放在同一文件目录
- 使用命令行进入文件目录
pyinstaller -w -F -i favicon.ico Hexo.py
- 愉快使用
本工具开源协议为 不知道协议,因为我还没有区分这些协议的意思……
总之,随便用,欢迎 star
、 fork
、issue
。