前言
我仔細想了一想,第一次看到獨立博客這東西就是獨立博客中的翹楚 hexo。大概在這個時候,我才能升起強烈的興趣,於是折騰起了基於 gh-pages 的靜態博客,甚至因此對於 WordPress 這種動態博客產生了恐懼。在這期間,我懷揣著一個會打字比較快、還會手敲網頁、於是欲將自己的網頁作主頁的小學生的夢想,遇見了一個問題:
如何在 GitHub Pages 上傳自己寫的網頁作為首頁,Hexo 博客作為其子頁?
今日即擴展至 Jekyll ,記錄自己的解決方法。
Jekyll
Jekyll 可以和你自己編寫的網頁共存。這意味著:只要你把 Jekyll 博客的內容移動到主倉庫的子目錄下,再在主倉庫直接編寫,一切就完成了。
Hexo
突破口
在上文提及的知乎問題中,有人提供了雙倉庫的解決方案。即:一個倉庫名為uname.github.io
用於儲存主頁面,另一倉庫名為blog
儲存修改站點配置文件
中URL
一節為子頁面的 hexo 文件。如果不用 CNAME,這實在是有點繞不過彎子的行為。(詳見:Hexo - 用自己的頁面做首頁)
如果你將 hexo 目錄的內容直接粘貼到uname.github.io
倉庫下的子目錄下,會發現除了引用資源外,內容並無差錯。而經過修改站點配置文件
中URL
一節為子頁面後,引用資源跟著變成了子頁面下的路徑。
從 hexo 的本質來看,它就是生成了一堆靜態文件罷了。這樣一來,解決問題就非常容易了。
解決方案
- 修改
站點配置文件
中URL
一節對應你期望的子目錄名稱。 - 在 hexo 目錄下運行
hexo g
。 - 直接複製 hexo 目錄下的生成文件目錄(默認為
public
)中的內容至uname.github.io
倉庫下的子目錄內。
當然,碼力夠強、時間夠多,自然可以由此原理寫個自動腳本。最近有空起來終於寫完了這個咕了許久的小工具:hexo-deploy.sh。
注意
這種方案相當於跳過了利用 hexo 工具部署至 GitHub,實際上還是有點麻煩的。但回頭再想想:你同時需要直接用 git 來 push 你的主頁面,那麼在電腦裡留著本地倉庫有什麼不好的呢?
因此,煞費苦心建了一個叫做「blog」的倉庫的各位,刪掉它吧!
演示
倉庫請見:https://github.com/inchei/inchei.github.io/
Jekyll: https://inchei.github.io/blogHexo: https://inchei.github.io/lab/hexo
沒有了呢……