為什麼要多新增這個 Makefile 呢?因為我懶。
每次 run server 都要想:
「痾…我今天在 run go 還是 run python?」
go 的話:
go run .
python 的話:
python3 main.py
啊都不是,我在 run hugo:hugo server -D
那個導頁到最近變更頁面的指令是什麼?
hugo server --navigateToChanged
…
太煩了吧!腦子要用來想重要的事情,不是這些事情 XD
所以我們來把指令變簡單:
你不用再記一堆有的沒的, run server 就下
make server
管他今天 run 的是什麼把大腦用於重要決策,例如想文章名稱,你只要
make {主題} {文章名}
,不用再hugo new content content/posts/{主題}/{文章名}/index.md --kind {主題}
你打完上面那串,文章都不想寫了。
在文章前多加上 date,方便管理文章排序
建立 Makefile
為達成以上目標,我們用 Makefile 來管理,他的好處就是可以把多種指令都包在一個檔案裡面,如果今天是寫 scritp 的話,每個指令都要一個 scritp 檔,但我們指令基本上都很簡單,所以寫在一起就好。
Makefile 的用法就是可以讓你在終端機下 make …
在你的資料夾下新增
Makefile
copy paste 下面的 code 到你的 file 裏面
.PHONY: tech life books server draft clean # 改這裡 # 定義可用的類別 CATEGORY_NAME = tech life books #改成你的分類 # 創建新文章 $(CATEGORY_NAME): @date=$$(date "+%F"); \ if [ -z "$(POST_NAME)" ]; then \ post_path="content/posts/$@/$$date"; \ else \ post_path="content/posts/$@/$$date-$(POST_NAME)"; \ fi; \ hugo new "$$post_path/index.md" --kind $@ # kind 定義在 archetypes # 啟動開發伺服器(包含草稿) server: hugo server -D --navigateToChanged # 啟動開發伺服器(不包含草稿) prod: hugo server --navigateToChanged # 清理生成的文件 clean: rm -rf public/ rm -rf resources/ # 顯示幫助信息 help: @echo "Available commands:" @echo "Categories: $(CATEGORY_NAME)" @echo " make CATEGORY POST_NAME=<name> - Create a new post in category" @echo " make server - Start development server (with drafts)" @echo " make prod - Start production server (without drafts)" @echo " make clean - Clean generated files" @echo "" @echo "Examples:" @echo " make tech POST_NAME=my-post - Create a new tech post named 'my-post'" @echo " make tech - Create a new tech post with date only"
.PHONY 後面的字可以自定義,到時候你就是在終端機下,你 PHONY 後面有列的字,例如我的就是
make life
make tech
make books
你如果要 make {你的主題名稱 1},就是
.PHONY: 你的主題名稱1 你的主題名稱2 你的主題名稱3 server draft clean
小注意,我在指令有加
--kind
,你如果沒有定義 archetypes 檔案的話要拿掉創建新文章要改成這樣
# 創建新文章 $(CATEGORY_NAME): @date=$$(date "+%F"); \ if [ -z "$(POST_NAME)" ]; then \ post_path="content/posts/$@/$$date"; \ else \ post_path="content/posts/$@/$$date-$(POST_NAME)"; \ fi; \ hugo new "$$post_path/index.md"
想要知道 archetypes 設定
—-kind
的可以參考這一篇 《archetypes》恭喜完成拉,可以在終端機下
make …
惹 🎉
1. 建立文章指令
現在你要新增文章,就只要下:make {你的主題名稱} POST_NAME={你的文章名稱}
(文章名稱這裡設定 optional,可不填,因為每天寫日記有時候不想想標題)
ex:
make life POST_NAME=amu
2. 啟動 Server、run draft(草稿文)並導到最新修改頁面的指令
make server
3. 啟動 Server 並導到最新修改頁面的指令
make prod
4. 清除 public、resource 資料夾的指令
make clean
這個會需要,是因為我有時候更新圖片,重新 run server,他還是會吃到舊的圖片,刪掉重新產才會好,但我還沒研究為什麼,就先降吧~
恭喜完成設定,space 腦袋去做其他事情吧寶貝們。