如何用語雀寫部落格?
過去我總是以用什麼工具來寫文件(文章)而糾結,直到遇見了ofollow,noindex">語雀 。
yuque-blog 是最近這幾個週末用業餘時間設計和實現的一個部落格系統,核心目標是:“在語雀上(和你的小夥伴一起)編輯文章,在自己的網站上展示文章”。它基於語雀,實現了部落格內容頁面的自定義輸出,支援同構直出、離線訪問等特性;技術架構上,我選用了 beidou (基於 eggjs 的同構框架) 作為後端框架,前端框架採取了常見的 React 全家(半)桶。
yuque-hexo 是用於下載語雀的文章到 hexo 的文章目錄下的一款命令列工具。
調研階段
常見的部落格平臺根據其形態大致分為以下幾類:
-
無後臺(靜態部署)
- 靜態頁面 + 靜態內容
- 靜態頁面 + 動態內容管理
- 有後臺
一般來說,在伺服器資源允許的條件下,有後臺的部落格系統(基於 PHP 的 WordPress,使用 Node.js 的 Ghost)是比較普遍的方案,通常情況都會提供一個內容管理的後臺管理頁面,讓寫者集中在寫作本身,沒有太多額外的(技術性)操作;下面可以在幾方面稍微對比一下,不同方案下的優劣;
|
完全靜態 |
靜態頁面+第三方內容管理 |
完全動態 |
經典案例 |
Github Pages + Github Issue Github Pages + Serverless |
WordPress / Ghost / Calypso / Typecho |
|
內容管理 |
+ |
++ |
+++ |
團隊協作 |
++ |
+++ |
+++ |
文章編輯 |
+ |
++ |
+++ |
RSS 訂閱 |
+++ |
+++ |
+++ |
可擴充套件性 |
+ |
++ |
+++ |
社會化生態 |
+++ |
+++ |
+++ |
首屏載入 |
+++ |
+ |
++ |
快取載入 |
++ |
+++ |
++ |
+++ |
+ |
+++ |
|
效能 |
+++ |
++ |
+ |
環境簡易程度 |
+++(靜態檔案伺服器) |
++(靜態檔案伺服器+第三方內容管理系統) |
+(獨立部署的 HTTP 服務) |
靈光乍現
語雀是一款擁有非常優秀的編輯 / 閱讀體驗,支援團隊協作的知識創作平臺;TXD 團隊部落格包含前端、視覺、互動同學積累的精華文章,由於成員背景原因(設計寫程式碼???),方案 1 和 方案 2 顯然不是最佳的選擇(設計師的學習成本和內容維護難易度),加上團隊裡面日常工作中使用語雀來編輯文件和知識倉庫梳理,為了降低寫作者的學習成本,以及提供良好的編輯體驗,決定基於語雀去開發一套完全動態的部落格系統。
其中實現的主要的特性如下:
腦洞大開
對於一些有專業背景的同學而言,Github Pages 是最好的部落格載體,其要求我們能夠提供一個可以輸出靜態頁面的版本;考慮到大多數同學原有的一些基礎建設,決定不再重複製作輪子,於是便基於 hexo 開始設計和思考,經過了一系列的預研工作(看原始碼、找參考……),最終一把梭開發了一個無侵入的命令列小工具yuque-hexo ,只負責同步語雀的文章,下載到本地後生成對應的 hexo 的文章(markdown 檔案),對原有的邏輯沒有做任何的改造,純粹的進行了功能擴充套件。
言歸正傳,適合自己的才是最好的,體驗一款好的產品,再到利用這個產品來擴充套件到一些相似的場景下,然後系統性的對該場景下的各種設計進行了調研分析和總結,從而達到提升體驗和效率的目的。