前 言
我的這個部落格站點大約始建於2010年以前,使用過 dlog、pjblog、zblog 等部落格程式,也手動建立使用過純靜態 HTML 頁面,大約2010年開始使用 WordPress。最近幾年有感於 WordPress 過於臃腫複雜,而我的目的只是想寫點什麼,給自己留下些記錄,於是將網站遷移到了更加簡潔的hexo。
在本地電腦搭建好環境,配置好 hexo 站點。每次在網易雲筆記裡寫好 markdown 格式的文章,然後複製到本地電腦 hexo 的對應目錄下,手動生成新的網站靜態頁面。最後再手動上傳到伺服器空間裡,這樣就完成了網站的更新。
Webify官網:https://webify.cloudbase.net/
我的需求
Hexo雖然簡潔、快速,但有幾個問題一直困擾著我,甚至影響了寫作的興趣和慾望。
第一,一定要使用我安裝配置了 hexo 的那臺電腦,才能釋出生成新的靜態頁面,然後才能更新到伺服器。雖然也瞭解過一些辦法,比如將 hexo 配置檔案複製安裝到不同電腦,或者上傳到 github,通過 github 更新,但終究不能很好解決網站更新,文章釋出的問題。
第二個問題,其實是第一個問題的延伸。每次釋出新文章,文章寫好以後,還需要複製到 hexo 目錄下,手動生成靜態頁面,然後上傳到網站伺服器,這個過程太過繁瑣。當然也去了解過解決辦法,比如使用 hexo-admin 外掛、給 hexo 新增後臺管理,把 hexo 部署到伺服器上,通過 admin-hexo 線上更新文章。然而這些都背離了我當初使用 hexo 的初心---簡潔,快速。如果要這樣折騰,為何不使用 WordPress 等功能更強大的部落格程式呢?
在折騰的過程中,在 hexo 官網上看見了一篇技術文章,介紹如何將 hexo 部署到GitHub Pages,非常符合我的需求,唯一的問題是,部署過程中需要藉助 Travis CI 這個第三方平臺,簡單的事情又變得複雜了。最後我甚至動了想把 hexo 轉換成 jekyll 念頭,因為 hexo 和 jekyll 結構基本一樣,完全支援.md的文章格式,更重要的是 GitHub Pages 原生的支援 jekyll,幾乎不需要任何設定。Github 雖然在國內很多地方訪問不穩定,但是套上 cdn 以後可以解決這個問題。
我開始著手將 hexo 遷移到 GitHub Pages 上,使用 jekyll 部署。但是不久發現了一個大問題,GitHub Pages 不支援 jekyll 外掛。沒錯,簡單的藉助 jekyll 外掛實現的比如翻頁,搜尋等功能,在 GitHub Pages 幾乎實現不了,這樣就很絕望了。於是一切再次停下來。
喜提Webify
隨後便看到了雲開發 Webify 這款產品,支援將任意形式的部落格,個人站點部署到 Webify。於是去了解了下,發現正是我所需要的,正好解決了我上述的需求。
Webify 部署 hexo 非常簡單,在 Webify 控制皮膚裡繫結 GitHub 裡的自己的 hexo 網站倉庫就可以了,因為 Webify 已經預設了 hexo 框架,所有配置都是預設和自動的。
部署好以後,網站就可以訪問了,還可以繫結自己的域名,預設會開啟 CDN 加速。
在自己的 GitHub 倉庫裡修改網站,或者擬寫 markdown 格式的日誌,webify 會自動構建和部署,生成新的靜態頁面併發布。這意味著以後只需要在 GitHub 裡寫文章(這篇博文即是如此),網站會完全自動更新,完美,這正是我一直以來所需求的。
下圖是我的 hexo 網站在 GitHub 裡的倉庫檔案列表。
按照官方文件介紹,webify在構建時,平臺會首先為您的應用安裝 package.json 中指定的專案依賴(包括開發環境依賴 devDependencies)。這意味著我在本地建立 hexo 時所安裝和依賴的各種環境和外掛,webify完全會自動幫我安裝。最後webify生成的hexo站點和我本地執行的完全一樣。
Webify的其他特點
- Webify預設支援cdn,所以網站構建部署成功以後,可能需要2-5分鐘時間才能看到效果(官方團隊會繼續優化)。
- Webify目前支援的框架有:
React/Vue/Angular/Next.js/Nuxt.js/Hexo/Gatsby.js/Vite/Docusaurus 2等。
- Webify 基本支援了國內主流的程式碼託管平臺 Github/Gitlab/Gitee 和騰訊雲 Coding。
現在,用 webify 部署應用還能領取300元無門檻代金券,足夠個人網站用兩年了,感興趣的可以去官網看看。
Webify官網:https://webify.cloudbase.net/
作者:YU JIANG
原文連結:https://zhuanlan.zhihu.com/p/410642192