AIO 編輯器

Extensions 總覽

AIO 編輯器全部 extension 一覽,逐一提供完整選項說明。

宣告驅動:config.features 是唯一宣告來源——宣告哪些按鈕,就載入哪些 extension(未宣告即不載入);Require(Document / Text / Paragraph)與 Basic(8 個純基建)恆載。各 extension 的選項經 config.extensionsConfig 覆寫(深層 merge:plain object 遞迴合併;陣列、function、instance 整值取代;null 清除預設、undefined 忽略),bubbles 與 dragHandle 亦同;各 default*Config 皆由 @admin/aio-editor 匯出。

import { AioEditorCoreExtension, AioEditorFeature } from '@/components/admin/aio-editor'​const config: AioEditorConfig = {  features: [AioEditorFeature.FontBold, AioEditorFeature.BulletList], // 宣告 = 按鈕 + 載入  include: [AioEditorCoreExtension.UndoRedo], // 無按鈕保 Ctrl+Z  exclude: [AioEditorCoreExtension.CopyData], // 精準排除(一律生效,分級警告)  extensionsConfig: {    Heading: { levels: [1, 2, 3] },    CharacterCount: { limit: 500 }  }}

三種載入路徑(依生命週期選對入口)

你要載入的東西正確路徑生命週期
有 UI 的自訂能力(按鈕+它的 extension)CustomFeature.extensions跟隨 feature 宣告
無 UI 的內建能力(保快捷鍵 / 輸入規則、Mention)include無條件載入,自動補齊硬依賴
無 UI 的自訂能力、同名替換extraExtensions無條件載入;同名時優先權最高

exclude 對三者一律生效(含 Require),不連鎖卸載——依賴者靜默失效、對應按鈕自動隱藏。排除後提供同名 extension 視為替換、不警告;未替換且有依賴者受影響時 console 警告。Require(Document / Text / Paragraph)於三路徑合併後檢查,最終集合缺席才給最強警告。

標「自製」者為本系列移植之客製 extension,帶有與官方套件不同的行為,詳見各頁說明。

每頁的「載入途徑 / 排除影響」段落取自 app/registry/admin/aio/aio-feature-map.json,該檔為手動維護;調整 FEATURE_DEFS、extensionDependencies 或恆載層後須一併更新。

文字 mark

Extension用途
Bold粗體
Italic斜體
Strike刪除線
Underline底線
Code行內程式碼
TextStyle行內樣式載體(Color / FontFamily / FontSize 之基底)
Color文字顏色
Highlight螢光標記
Subscript下標
Superscript上標

區塊

Extension用途
Document / Text / Gapcursorschema 基底與游標行為(無選項)
Paragraph段落
Heading標題 h1–h6
Blockquote引用區塊
HorizontalRule水平線
HardBreak強制斷行
CodeBlock(自製)程式碼區塊(lowlight 高亮)

清單

Extension用途
BulletList項目清單
OrderedList編號清單
ListItem清單項
TaskList待辦清單
TaskItem待辦清單項
ListKeyMap(自製)清單鍵盤行為

排版

Extension用途
TextAlign文字對齊
Indent(自製)區塊縮排
LineHeight(自製)行高
FontFamily字體
FontSize(自製)字級

行為

Extension用途
UndoRedo編輯歷史
Dropcursor拖放位置指示線
Placeholder空內容提示
CharacterCount(自製)字數統計與上限(IME 保護)
KeydownHandler(自製)鍵盤事件 hook
AutoJoiner相鄰清單自動合併
CopyData(自製)data-copy 屬性保留

內容節點

Extension用途
Link超連結
Image(自製)圖片(拖曳縮放、上傳 hook)
Video(自製)影片
TableKit(自製)表格(grip 選取)

Opt-in(須經 include 啟用)

Extension用途
Mention(自製)@ 提及
HashTag(自製)# 標籤

UI 附加(不走 extensionsConfig)

項目設定入口
Bubble Menu(自製)config.bubbles
Drag Handle(自製)config.dragHandle

Feature → Extension 對映總表

Feature載入 extensions跟隨 bubbles
UndoUndoRedo—
RedoUndoRedo—
FontHeadingHeading—
FontSizeSelectTextStyle、FontSize—
FontSizeIncreaseTextStyle、FontSize—
FontSizeDecreaseTextStyle、FontSize—
FontFamilyTextStyle、FontFamily—
FontBoldBold—
FontItalicItalic—
FontStrikeStrike—
FontUnderlineUnderline—
FontCodeCode—
SubscriptSubscript—
SuperscriptSuperscript—
TextColorTextStyle、Color—
HighlightHighlight—
AlignLeftTextAlign—
AlignCenterTextAlign—
AlignRightTextAlign—
AlignJustifyTextAlign—
IndentIndent—
OutdentIndent—
BulletListBulletList、ListItem、ListKeyMapList
OrderedListOrderedList、ListItem、ListKeyMapList
TaskListTaskList、TaskItem、ListKeyMapList
LinkLinkLinkTips
UnLinkLinkLinkTips
ImageImageImage
VideoVideo—
TableTableKitTable、TableRow、TableColumn
BlockquoteBlockquote—
CodeBlockCodeBlockCodeBlock
HorizontalRuleHorizontalRule—
HardBreakHardBreak—
FormatParagraph——
FormatUnsetAllMarks——
FormatClearNode——

樣式補充

  • CodeBlock 高亮配色:輸出帶 hljs class,配色主題由 consumer 自行引入(同 Svelte 版作法),例如 import 'highlight.js/styles/github-dark.css'
  • Mention / HashTag 建議樣式:節點 class 為 editor-mention / editor-hashtag、選單容器 class 為 editor-suggestion——參考主元件頁 Mention demo 的樣式片段