通过bat脚本实现hexo常用功能菜单

前言

广大的Hexo用户:你是否面对每天重复且繁杂的hexo new、hexo new page、hexo g、hexo cl等等这些命令感到厌烦?

重复的命令动作天天敲,而且有时候容易搞错混淆,我们是否可以通过脚本的方式实现它自动化?比如只需要写一个Windows的bat脚本,我们可以轻松实现只需要输入相应选项,即可自动进行这些命令操作。

功能介绍以及演示

  1. 创建新文章:提示用户输入文章名称,然后使用Hexo创建一篇新文章。
  2. 创建新页面:提示用户输入页面名称,然后使用Hexo创建一个新页面。
  3. 生成静态文件:使用Hexo g生成静态文件。
  4. 创建文章并自动打开Typora编辑器:提示用户输入文章名称,然后使用Hexo new 创建一篇新文章,并自动打开Typora编辑器以便用户编辑(请确定Typora在系统的环境变量里面,不然无效,可以自己根据实际需求更改代码替换编辑器)
  5. 本地运行网站并自动打开浏览器:启动Hexo本地服务器,并在本地服务器启动后5s(这里等待5s是为了避免本地服务器未完全启动导致打开404,可根据实际情况对代码调整)自动打开浏览器访问本地Hexo页面(默认localhost:4000)。
  6. 清除缓存:调用 Hexo clean清除缓存文件。
  7. 一键部署:先清除缓存,然后生成静态文件并部署到远程服务器,最后再次清除本地数据库。
  8. 退出:退出脚本关闭终端窗口。

这里就提供一张本文创建时的使用截图参考

最近CDN流量有点遭不住,新图片上传压缩了有点狠,将就看吧。

bat代码

根据上述介绍,可以按照需求自行更改一些功能,本文仅适用于Windows,其他平台请自己编写。

使用方法:鼠标右键新建一个文本将后缀改为.bat,名字自拟。或者使用自己的IDE新建一个bat文件,然后将代码粘贴进去保存即可双击运行。

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

:menu
cls
echo *********************************************
echo * Hexo Blog Management *
echo *********************************************
echo * 1. 创建新文章 *
echo * 2. 创建新页面 *
echo * 3. 生成静态文件 *
echo * 4. 创建文章并自动打开Typora编辑器 *
echo * 5. 本地运行网站并自动打开浏览器 *
echo * 6. 清除缓存 *
echo * 7. 一键部署 *
echo * 8. 退出 *
echo *********************************************
set /p choice=请输入您的选择(1-8):

if %choice%==1 goto article
if %choice%==2 goto page
if %choice%==3 goto generate
if %choice%==4 goto article_with_editor
if %choice%==5 goto server
if %choice%==6 goto clean
if %choice%==7 goto deploy
if %choice%==8 goto exit

:article
set /p name=请输入文章名字:
call hexo new "%name%"
echo 文章创建成功,请按任意键返回菜单。
pause >nul
goto menu

:page
set /p pagename=请输入页面名字:
call hexo new page "%pagename%"
echo 页面创建成功,请按任意键返回菜单。
pause >nul
goto menu

:generate
call hexo generate
echo 静态文件生成成功,请按任意键返回菜单。
pause >nul
goto menu

:article_with_editor
set /p name=请输入文章名字:
call hexo new "%name%"
echo 文章创建成功,正在打开Typora编辑器...
start "" "typora" "source\_posts\%name%.md"
echo 请在Typora中编辑文章,编辑完成后按任意键返回菜单。
pause >nul
goto menu

:server
start cmd /k "hexo server"
echo 本地服务器已启动,请访问 http://localhost:4000/,浏览器将在服务器启动后5秒内自动打开。
timeout /t 5 >nul
echo 浏览器已自动打开本地Hexo页面。
start "" "http://localhost:4000"
pause >nul
goto menu

:clean
call hexo clean
echo 缓存已清除,请按任意键返回菜单。
pause >nul
goto menu

:deploy
call hexo clean && call hexo g && call hexo d && call hexo cl
echo 部署完成,请按任意键返回菜单。
pause >nul
goto menu

:exit
echo 感谢使用,再见!
exit