Hexo、VitePress、Docusaurus,哪個最適合你的靜態網站生成器?

cuihaoweb發表於2024-03-08

在選擇合適的靜態網站生成器時,Hexo、VitePress、Docusaurus是三個備受關注的選項,那麼到底哪一個框架更適合你呢?本文將從使用場景、社群生態、功能、效能、擴充套件性這五個方面,幫你全方位分析各個框架的優缺點,以便為你的技術選型提供參考。

1、應用場景

  • Hexo, 官方定位自己是 "快速、簡潔且高效的部落格框架" , 但是它同樣適合構建簡單的文件網站,它具有簡單易用的特點,適合那些對技術要求不高的個人使用者快速搭建和管理網站。

  • VitePress, 基於vue的SSG框架,可以快速構建個人的技術文件系統,但是官方預設是不支援構建部落格網站的,但是對於專業的前端開發者來說可以自己定製主題,對於非技術人員有一定的門檻。

  • Docusaurus, 基於react的SSG框架,相比與VitePress,Docusaurus支援部落格和文件系統,同時也提供了一定的定製化能力,同樣對於專業的前端開發者來說也可以自己定製主題,對於非技術人員有一定的門檻。

2、功能

框架 國際化 主題切換 本地搜尋 markdown語法
hexo
vitepress
docusaurus

常見的功能,這些框架都支援,所以大家可以放心使用。

3、社群生態

社群:

  • Hexo, 由眾多的獨立開發者和使用者提供支援和貢獻,其社群十分活躍,你可以在社群中找到幫助和解決方案。
  • VitePress作為Vue專案的一部分,可以享受到Vue社群的支援。Vue社群龐大活躍,有很多開發者和使用者參與其中,提供支援和貢獻。
  • Docusaurus由Facebook開發和維護,擁有龐大的社群和開發者基礎。它的社群中有很多開發者和使用者提供支援和貢獻,可以獲得豐富的資源和幫助。

github stars:

框架 github stars url
hexo 38.2k https://github.com/hexojs/hexo
vitepress 10.4k https://github.com/vuejs/vitepress
docusaurus 51.8k https://github.com/facebook/docusaurus

相比較來說,docusaurus的stars數最多,hexo次之,vitepress最少當然10k左右的star其實已經很高了。

透過github stars的數量從側面反應了這些框架在開源社群中的受歡迎程度和廣泛使用的程度。然而,stars數目並不是衡量一個工具好壞的唯一標準。除了stars數目外,還應考慮其他因素,例如功能特性、擴充套件性、效能等。每個工具都有自己的特點和優勢,適用於不同的使用場景和需求。因此,在選擇合適的靜態網站生成器時,除了stars數目外,還應該綜合考慮工具的特點和適用性,以及社群支援和生態系統的健康程度,這只是提供給大家一個參考。

theme:

  • Hexo官方提供了一些內建的主題供選擇,如Next、landscape、jacman等。這些主題具有不同的風格和佈局,可以根據個人喜好進行選擇和定製。Hexo社群中也有許多第三方開發的主題,如Butterfly、Maupassant等。這些主題提供了更多的樣式和功能定製選項,可以滿足更多的需求。
  • VitePress官方提供了預設的主題,具有簡潔的設計和易於導航的佈局。這個主題適合構建技術文件和API文件等。VitePress使用Vue單檔案元件來編寫內容,因此可以根據需求自定義主題。可以透過修改預設主題的樣式和佈局,或者建立全新的主題來滿足個性化需求。
  • Docusaurus官方提供了預設主題,具有專注於文件網站的特點。它提供了清晰的導航結構、多語言支援、版本控制等功能,適合構建開源專案的文件網站。Docusaurus支援透過React自定義佈局和元件來建立定製化主題。可以根據專案需求進行樣式和佈局的修改,或者透過建立自定義元件來擴充套件功能。

主題模板是靜態網站生成器中用於定義網站外觀和佈局的重要組成部分。Hexo、VitePress和Docusaurus都提供了豐富的主題模板供選擇。

Hexo擁有官方和第三方主題,可滿足不同風格和需求;VitePress提供預設主題和自定義選項,適用於簡潔的開源專案文件網站;Docusaurus的官方主題同樣適合構建開源專案文件網站,並支援自定義佈局和元件。

在選擇主題模板時,應考慮風格、功能定製和社群支援。透過選擇適合的主題模板,您可以快速打造吸引人、個性化的網站,滿足您的需求和品味。

4、效能

說效能之前,得先知道各個框架底層的渲染框架,

  • hexo,底層使用EJS,EJS是一款 "嵌入式 JavaScript 模板" , 因此hexo的執行時依賴很少,具有原生html的效能。
  • vitepress,底層使用了vite、vue進行構建,vitepress執行時會有一個hydrate的過程,因此需要額外依賴vue.js的執行時支援,也就是需要載入額外的js檔案。

    所謂hydrate,指的是 Vue 在瀏覽器端接管由服務端傳送的靜態 HTML,使其變為由 Vue 管理的動態 DOM 的過程。簡單解釋來說,就是讓靜態的html可以透過vue.js進行互動。

  • Docusaurus,底層使用了webpack、react進行構建,同樣也會有hydrate的過程,也需要載入額外的js檔案。

總結來說,從頁面載入速度來說,hexo > vitepress > docusaurus。從開發環境的速來來說:ejs > vite > webpack。

但是,這些框架頁面的載入速度來說,其實也就是200ms以內的差異,如果使用http cache、gzip等最佳化手段,這些框架的渲染速度差異幾乎可以忽略不計。

5、擴充套件性

  • hexo,由於底層使用了ejs模板引擎,因此想要更加方便的擴充套件,其實相對來說不是一件容易的事情。然而如果你能選擇hexo,我相信你其實也不需要什麼額外的擴充套件。
  • vitepress,底層使用了vue,因此支援你完全使用vue的語法去定製你想要的任何樣式。
  • docusaurus, 底層使用了react,因此同樣支援你完全使用react的語法去定製你想要的任何樣式。

總結

綜上所述,根據不同的使用場景和需求,可以選擇適合的工具。

如果你是一個非前端開發者,那麼我建議hexo,你完全可以使用hexo提供豐富的社群模板構建你想要的頁面。

如果你是前端程式設計師,並且技術棧以vue為主,可以嘗試vitepress,但是vitepress不支援部落格,當然你完全可以定製化主題,但是不妨可以先看看hexo是否有滿足你需求的部落格主題模板。

如果你是前端程式設計師,並且技術棧以react為主,可以使用docusaurus,它同時支援部落格和文件,同樣支援定製化主題。

最後獻上我的個人部落格網站:https://blog.chdl.fun , 我的部落格是採用了docusaurus進行構建,歡迎讀者老爺前來圍觀。

參考:

  • hexo官方網站: https://hexo.io
  • vitepress官方網站: https://vitepress.dev
  • docusaurus官方網站:https://vitepress.dev
  • ejs官方網站:https://vitepress.dev
  • vue.js:https://v2.ssr.vuejs.org/guide/hydration.html#client-side-hydration

相關文章