AIO 編輯器

AIO 編輯器總覽

config 驅動的 all-in-one 富文本編輯器系列,傳入設定即得完整編輯器。

@admin/aio-editor 是 config 驅動的 all-in-one tiptap 編輯器:consumer 不需要在 template 組裝任何子元件,傳一份 config 決定啟用哪些 extension、toolbar 按鈕、bubble menu 與 drag handle。

<template>  <admin-aio-editor v-model="content" /></template>

系列組成

文件用途
AioEditor主元件:demo、API 參考、注意事項
Extensions全部 extension 逐一列出,含完整選項說明

Registry 單元只有一個:@admin/aio-editor。UI 與邏輯核心(extensions、預設 config、useAioEditor)同屬此單元(核心置於元件內 core/ 子目錄),安裝即取得完整編輯器;config 型別、enums 與各 default*Config 皆自 @admin/aio-editor 匯出。

與編輯器(editor-*)系列的差異

編輯器系列AIO 編輯器系列
組裝方式template 組裝子元件config 驅動,單一元件
適合情境需要細部客製 UI 結構裝上就要一套完整編輯器
功能取捨要什麼裝什麼(opt-in 包)預設全開,用 exclude 關閉
相依關係—與 editor-* 零耦合,可獨立安裝

安裝

pnpm dlx shadcn-vue@latest add @admin/aio-editor

config 快速心智模型

const config: AioEditorConfig = {  features: [],         // 唯一宣告來源:按鈕排列 = 功能載入(未宣告即不載入)  include: [],          // 無按鈕載入能力(保 Ctrl+Z、輸入規則、Mention…;自動補齊硬依賴)  exclude: [],          // 排除任意 extension(一律生效、分級警告、同名替換)  extensionsConfig: {}, // 各 extension 選項覆寫(深層 merge;陣列與 instance 整值取代、null 清除預設)  extraExtensions: [],  // 自訂 extension / 同名替換(優先權最高)  toolbarOptions: {},   // 標籤 / 字級字體清單 / 色票 / requestUrl / requestColor  bubbles: {},          // 掛載跟隨 features;個別 false 停用、物件覆寫、slot 替換  dragHandle: false,    // false 停用或物件覆寫  paste: {},            // 貼上行為(純文字 / 清圖 / transform hooks)  silence: false        // 靜音內部警告}

所有欄位皆可省略;未指定 features 時使用完整預設排列(35 顆)。按鈕依 extension 啟用狀態自動隱藏,不會出現壞按鈕。

兩層客製路徑

  1. config 層(推薦):features / include / exclude / extensionsConfig / extraExtensions 同名替換——客製全部留在你自己的程式碼,vendored 檔保持乾淨,未來 shadcn add 更新零衝突
  2. 改 vendored 源碼:shadcn 精神的最終逃生口——升級時需人工合併,建議只在 config 層做不到時使用各 extension 之完整選項見 Extensions 總覽。