blog 建站之一些小細節 (主要是 submodule 的部份)

Page content

紀錄一下如何見這個網站的小細節

最近換了一個 hugo 的主題,之前的內容也好久沒更新了,最近應該會儘量放一些東西上來,為自己的學習和生活留個紀錄~~

把 content 和 blog 相關的 code 分離

我想把存放 blog 內容的 markdownn 檔案分開來放,這樣之後如果有換主題或從 hugo 換到其他的靜態網站生成器會比較方便。換句話說,這個和 blog 直接相關的 repo 結構大致如下

hugo-blog/
  |-- content/ ... 想放在另一個 repo 中
  |-- public/ ... leopardshadow.github.io 這個 github repo
  |-- theme/ ... 選擇其他人寫的主題,並下載到這裡
  |-- 其他檔案如 config.toml 等 ... 才是這個 repo 要管理的內容

想要在一個 github repo 中加入其他地方的 repo 可以用 submodule 這個功能

第一次加入 submodule

以上述的描述來說,我需要做

git submodule add https://github.com/leopardshadow/blog-contents content/
git submodule add https://github.com/leopardshadow/leopardshadow.github.io public
git submodule add https://github.com/Vimux/Mainroad themes/Mainroad

把上述三個從其他地方來的 repo 加進來

之後在其他地方時

之後如果換電腦、換環境了,直接把 blog clone 下來時,content、public、和 themes/ 內部會是空的,可以用

git submodule init
git submodule update --recursive

或一開始 clone 時用 git clone --recursive <repo>

把那些之前加的 submodule 弄回來

如果不要那個 submodule 了

移除的指令比較多步了,可以參考

https://blog.wu-boy.com/2011/09/introduction-to-git-submodule/

https://kmsheng.medium.com/git-submodule-%E6%95%99%E5%AD%B8-96ab0255c88c