1. 前言#
為什麼會想着來做這樣一個開源博客項目呢?
原因為總結了幾點:
- 作為程序員,怎麼能沒有自己的博客呢。
- 用來沉澱自己的一些學習內容和記錄一些技術文章。
- 促進自己持續輸出一些內容,來提高語言表達能力。
- 個人屬性吧,覺得有一個屬於自己的平台,那真是,泰褲辣。
其實陸陸續續寫過很多個 blog,去年基於 Nextjs 重構了一次 blog,大概是長這樣,是參考一個博客的模板寫的,當時覺得還挺不錯的。
那麼今天介紹的開源項目 DevNow 開源博客項目 又是在什麼條件下做的呢。
上個月初和一個大學同學在聊天的過程中聊到他正在找一個合適的開源項目來承載他的讀書筆記項目,但是一直沒有找到一個 UI、功能匹配度比較高的項目,然後我就說要不我來寫一個開源出來,大家一起用。
2. DevNow: 現代化開源博客項目#
DevNow 是一個現代化的、簡約的開源技術博客項目。支持 Vercel 一鍵部署,支持評論、搜索等功能,歡迎大家提 issue、star、fork 使用。
Github 地址: https://github.com/LaughingZhu/DevNow
目前已經把我博客的內容都遷移過來了,同時也承接著 weekly 內容平台,每週發布一些技術圈中熱度比較高的內容。主要是技術相關的,可能會穿插一些其他的話題和一些開源項目介紹等。
我的博客地址: https://www.laughingzhu.cn/
3. 目前支持的功能#
- ✅ 適配移動端
- ✅ SEO & OpenGraph
- ✅ 支持 Markdown & MDX
- ✅ 語法高亮
- ✅ 圖片壓縮
- ✅ 主題色
- ✅ 代碼複製
- ✅ 支持 Sitemap
- ✅ 支持 RSS Feed 訂閱
- ✅ 草稿模式
- ✅ 🔍文章搜索 (借助 DocSearch 他實現 )
- ✅ 支持 Comments (Giscus)
- ✅ 支持分頁
- ✅ 標註
- ✅ 媒體嵌入(目前支持 Youtube、Twitter、Link、Vimeo)
4. 技術棧#
- Astro : Astro 是一個集多功能於一體的 Web 框架。它內置包含了你構建網站所需的一切。還有數百個不同的集成和 API 鉤子可根據你的具體用例和需求定制你的項目。
- TypeScript
- Tailwind CSS
- Mdx (大家在投稿或者寫文章時,優先使用.mdx,格式和 md 一樣,只不過.mdx 對於上邊提到的功能支持度是最高的)。
- Vercel 一鍵部署
5. 為什麼說是現代化的開源博客項目?#
我覺得這個話題可能是比較開放的吧,簡單聊下我的想法:
- 現代化簡潔的 UI :我是從事前端開發的程序員,所以 UI 在我開來很重要,DevNow 整體的 UI 借鑒了一些比較好的 UI,整體還是比較簡潔的。
- 技術層面 :基本上使用了近幾年比較火的一些技術棧,整個項目還是有一些值得學習的內容。
- 擴展性 :整個項目是基於 Astro 來開發的,Astro 可以隨意擴展 UI 框架集成,包括 React、Preact、Svelte、Vue、SolidJS、AlpineJS 和 Lit。有更豐富的擴展性。
- 開源性 :基本上所有的功能模塊都是基於一些開源項目來構建的,這樣可以讓整個項目的擴展性也比較高。不過這裡也有一些弊端:比如基於 giscus 的評論模塊,需要用戶自己去配置一些內容,在易用性上還是差了一點。
6. 聊下這個項目帶來的收穫#
從上線到現在,剛剛把基礎的功能模塊都陸陸續續迭代完了,大家可以 fork 下體驗體驗,歡迎提 issue 和反饋。
由於第一次寫開源項目,所以開始的項目中還是有很多硬編碼的代碼,導致用戶在改起來內容的時候需要進入到項目中來找到對應的模塊修改。這裡我的朋友給了我很多建議,目前的版本已經參考一些開源項目進行優化了幾版,基本上都可以在配置文件中來修改項目的基礎信息了。這個也算是開源項目帶來的收穫吧,開發上思想的轉變,讓項目具備更好的 靈活性 和 擴展性 。
7. 總結#
目前 DevNow 作為一個開源博客項目還是很年輕的,需要大家來提供些好的建議和使用反饋,也歡迎👏🏻來投稿一些優質的內容和新聞。
既然都讀到這裡了,那就給俺點個 star 吧。