AIO 編輯器

CodeBlock

程式碼區塊(lowlight 語法高亮)。

程式碼區塊,自製變體:基於 CodeBlockLowlight,renderHTML 直接內嵌 hljs 高亮結構——輸出的 HTML 在非編輯情境(郵件、前台)不需再跑一次高亮。

  • config key:AioEditorCoreExtension.CodeBlock
  • 來源:自製(基於 @tiptap/extension-code-block-lowlight + lowlight)

載入途徑:跟隨 features 宣告:CodeBlock。按鈕未宣告但要保留能力 → include: [AioEditorCoreExtension.CodeBlock]。

排除影響(exclude: [CodeBlock]): 按鈕 CodeBlock 將自動隱藏; 以 extraExtensions 補上同名 extension(codeBlock)即為替換。

選項

欄位型別預設值說明
lowlightReturnType<typeof createLowlight>createLowlight(all)語法高亮引擎;預設載入 highlight.js 全語言,追求 bundle 可自建僅含所需語言之實例
languageClassPrefixstring'language-'code 元素之語言 class 前綴
defaultLanguagestring 或 nullnull未指定語言時之預設;null 為自動偵測
exitOnTripleEnterbooleantrue連按三次 Enter 離開區塊
exitOnArrowDownbooleantrue區塊尾按 ↓ 離開
enableTabIndentationbooleantrue區塊內 Tab 輸入縮排
tabSizenumber4Tab 縮排寬度
HTMLAttributesRecord<string, any>{ class: 'hljs' }渲染輸出時附加之 HTML 屬性

Commands

Command說明
setCodeBlock({ language? })轉為程式碼區塊
toggleCodeBlock({ language? })切換程式碼區塊

快捷鍵

按鍵行為
Mod-Alt-C切換程式碼區塊

覆寫範例

const config: AioEditorConfig = {  extensionsConfig: {    CodeBlock: { defaultLanguage: 'typescript', tabSize: 2 }  }}

輸入規則:行首 ```(可接語言名)自動轉為程式碼區塊。位於區塊內時會出現 CodeBlock bubble。