「後台加個可以編輯文章的地方。」這句需求看起來很小,往下想卻會一直長:要粗體、要連結、貼上 Word 的內容不能亂掉,最好還能拖圖片進去。光是決定要用哪套編輯器,就可以花掉不少時間。
所以 Nuxt UI 在 2025 年 12 月的 v4.3.0 加入 Editor 時,我是有點開心的。已經用它做後台的話,至少編輯區和工具列不用再找另一套長得不太一樣的東西接上來。少處理一點樣式衝突,就能早一點開始做真正的需求。
底下的編輯能力來自 TipTap,Nuxt UI 準備了 Editor、EditorToolbar,還有輸入 / 選擇標題或清單的選單等元件。它不是自己從零重做整個文件編輯引擎,這點我反而比較放心。選取文字、游標、貼上、復原,光想到要讓這些操作配合得自然,就不太想自己從頭寫一次。
如果只是一般文章後台,我會先留標題輸入框、內文和儲存按鈕。內文用 Editor,工具列放粗體、標題和連結,透過 v-model 拿編輯結果,再送到自己的 API。能存、能重新打開繼續寫,這一輪跑順,比先把工具列排得像 Word 還重要。
我會先試關掉,再打開#
編輯器有個很容易讓人太早放心的地方:打字當下,一切看起來都很正常。真正的考驗是存檔、離開,過一會兒再回來。連結還在嗎?清單層級有沒有變?剛剛放的特殊區塊,怎麼變成普通文字了?
Nuxt UI 的 Editor 支援 JSON、HTML 和 Markdown,選哪個不能只看哪個比較熟。例如網站原本就是 Markdown 文章,沿用很自然;但如果編輯器裡加了 Markdown 沒有對應方式的排版,就要確認轉換後還留得住多少。JSON 比較適合保留文件結構和自訂區塊,HTML 則方便顯示,不過接受使用者內容時仍要做適當的清理與驗證。
這些是套件裝好後才開始的工作。儲存 API、草稿、誰能改文章、什麼時候公開,都還在自己的網站裡。看到現成 Editor 很容易覺得完成八成,但對真正拿它寫文章的人來說,打到一半離開會不會弄丟,可能比有幾種文字顏色重要得多。
至於 / 選單和拖曳區塊,我也想加,只是會排在後面。先確定一篇寫到一半的文章,明天回來還能好好接著寫。