前言
本篇介紹如何設定排程發表文章,透過自動化腳本發表文章。
原理
利用頁面 Front matter 的 date
值,把日期設 欲發表日期,透過 crontab
每日執行腳本發表文章。
排程發表的文章請將 draft
設 false
。
Front matter 也可以使用以下參數:
draft
草稿publishDate
發佈日期expiryDate
過期日期
Hugo 本機運行指令
參數:-D
草稿(Draft)、-F
未來時間(Future)、-E
已過期(Expired)
- 僅預覽草稿
hugo server -D
- 僅預覽未來日期的文章
hugo server -F
- 預覽草稿和未來日期的文章
hugo server -FD
deploy.sh
建立部屬腳本,依自身環境修改程式碼。
/bin/bash
# 設定環境變數,防止執行腳本無反應
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
cd /home/hugo/blog
# 刪除 index.lock 防止 Git 卡住
rm -f .git/index.lock
today=$(date +"%Y/%m/%d")
# Hugo 生成網站並檢查結果
hugo --cleanDestinationDir
if [ $? -ne 0 ]; then
echo "Hugo generation failed" >> /home/hugo/deploy.log
exit 1
fi
git add -A
git commit -m "${today}"
git branch -M main
git remote set-url origin git@github.com:<Git 帳號>/<Repository 名稱>.git
git push
echo "Deploy script finished at $(date)" >> /home/hugo/deploy.log
Crontab 設定
輸入 crontab -e
編輯工作排程,在最底下新增每日固定時間執行 deploy.sh
發布。
0 1 * * * /bin/bash /home/hugo/deploy.sh > /home/hugo/deploy.log 2>&1