前言
Hexo 自带 deploy 模块,网上也有很多大神分享各种各样的 CI/CD 方案,我没有想过写 Blog 需要这么复杂,而且 Hexo 已经很稳定了。我因为开始学习使用 MacBook,所以逼着自己把之前用在 Windows 上的脚本用 Python 重新写了下,很简陋但也很好用,相信大家可以写出更加通用和优美的代码。
使用 Powershell 和 Python 自动化更新和推送 Hexo 静态 Blog
更新历史
2018 年 07 月 31 日 - 初稿
阅读原文 - https://liaojiaxin158.github.io/post/hexo-deploy/
Windows
./deploy_hexo.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # hexo g cd .\hexo hexo clean hexo g
# del old files cd ..\liaojiaxin158.github.io Remove-Item about,archives,categories,css,fancybox,font,img,index,js,page,post -recurse -force
# deploy github Copy-Item ..\hexo\public\* .\ -recurse -force git add * git commit -m "mod" git push
cd ..
|
MacBook
python3 deploy_hexo.py
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
| import os import sys import subprocess
hexo = os.path.join(os.getcwd(), "hexo") liaojiaxin = os.path.join(os.getcwd(), "liaojiaxin158.github.io")
home = os.getcwd() print ("current directory %s" % home)
os.chdir(hexo) retval = os.getcwd() print ("chdir to hexo %s" % retval)
subprocess.call(['hexo clean'], shell=True)
subprocess.call(['hexo g'], shell=True)
os.chdir(liaojiaxin) retval = os.getcwd() print ("chdir to liaojiaxin %s" % retval)
subprocess.call(['rm -rf about archives categories css fancybox font img index js page post'], shell=True)
subprocess.call(['cp -rf ../hexo/public/* ./'], shell=True)
subprocess.call(['git add *'], shell=True) subprocess.call(['git commit -m"mod"'], shell=True) subprocess.call(['git push'], shell=True)
|