From 2086f081e3f155f7012b94c9ba693cc22d55789c Mon Sep 17 00:00:00 2001 From: zzxming Date: Sat, 22 Feb 2025 15:24:02 +0800 Subject: [PATCH] refactor: create override format in register function --- README.md | 13 ++++--------- src/formats/overrides/blockquote.ts | 8 -------- src/formats/overrides/code.ts | 8 -------- src/formats/overrides/header.ts | 8 -------- src/formats/overrides/index.ts | 4 ---- src/formats/overrides/list.ts | 10 ---------- src/index.ts | 18 ++++++++++++------ 7 files changed, 16 insertions(+), 53 deletions(-) delete mode 100644 src/formats/overrides/blockquote.ts delete mode 100644 src/formats/overrides/code.ts delete mode 100644 src/formats/overrides/header.ts delete mode 100644 src/formats/overrides/list.ts diff --git a/README.md b/README.md index 65c2df4..2a06cbd 100644 --- a/README.md +++ b/README.md @@ -243,19 +243,14 @@ const defaultTools = [ ## Overrides -if you need to rewrite extends from quill `Block` or `Scroll` blot. you need to import it from `quill-table-up`. or use `Quill.import()` after `TableUp` registed. beacuse module internal rewrite some functions, but those change only effect formats about table. +if you need to rewrite extends from quill `Block` or `Scroll` blot. you need to use `Quill.import()` after `TableUp` registed. beacuse module internal rewrite some functions, but those change only effect formats about table. + +`Header`,`List'`,`Blockquote` and `CodeBlock` have been overrides. so if you need to rewrite them, you need to rewrite them before `TableUp` registed, or you want to rewrite the internal logic. you can use `Quill.import()` after `TableUp` registed. please read [source code](https://github.com/zzxming/quill-table-up/tree/master/src/formats/overrides) to know those change. ```ts -import { - BlockOverride, - BlockquoteOverride, - CodeBlockOverride, - HeaderOverride, - ListItemOverride, - ScrollOverride, -} from 'quill-table-up'; +import { BlockOverride, ScrollOverride, } from 'quill-table-up'; class ScrollBlot extends ScrollOverride { // ... diff --git a/src/formats/overrides/blockquote.ts b/src/formats/overrides/blockquote.ts deleted file mode 100644 index 868c238..0000000 --- a/src/formats/overrides/blockquote.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type TypeBlockquote from 'quill/formats/blockquote'; -import Quill from 'quill'; -import { mixinClass } from '../../utils'; -import { BlockOverride } from './block'; - -const Blockquote = Quill.import('formats/blockquote') as typeof TypeBlockquote; - -export class BlockquoteOverride extends mixinClass(Blockquote, [BlockOverride]) {} diff --git a/src/formats/overrides/code.ts b/src/formats/overrides/code.ts deleted file mode 100644 index 810c99e..0000000 --- a/src/formats/overrides/code.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type TypeCodeBlock from 'quill/formats/code'; -import Quill from 'quill'; -import { mixinClass } from '../../utils'; -import { BlockOverride } from './block'; - -const CodeBlock = Quill.import('formats/code-block') as typeof TypeCodeBlock; - -export class CodeBlockOverride extends mixinClass(CodeBlock, [BlockOverride]) {} diff --git a/src/formats/overrides/header.ts b/src/formats/overrides/header.ts deleted file mode 100644 index 2180aa4..0000000 --- a/src/formats/overrides/header.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type TypeHeader from 'quill/formats/header'; -import Quill from 'quill'; -import { mixinClass } from '../../utils'; -import { BlockOverride } from './block'; - -const Header = Quill.import('formats/header') as typeof TypeHeader; - -export class HeaderOverride extends mixinClass(Header, [BlockOverride]) {} diff --git a/src/formats/overrides/index.ts b/src/formats/overrides/index.ts index 0970c02..5d403cd 100644 --- a/src/formats/overrides/index.ts +++ b/src/formats/overrides/index.ts @@ -1,6 +1,2 @@ export * from './block'; -export * from './blockquote'; -export * from './code'; -export * from './header'; -export * from './list'; export * from './scroll'; diff --git a/src/formats/overrides/list.ts b/src/formats/overrides/list.ts deleted file mode 100644 index 6f587c2..0000000 --- a/src/formats/overrides/list.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type TypeListItem from 'quill/formats/list'; -import Quill from 'quill'; -import { mixinClass } from '../../utils'; -import { BlockOverride } from './block'; - -const ListItem = Quill.import('formats/list') as typeof TypeListItem; - -export class ListItemOverride extends mixinClass(ListItem, [BlockOverride]) { - static register(): void {} -} diff --git a/src/index.ts b/src/index.ts index de53502..77ee186 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,8 +5,8 @@ import type Keyboard from 'quill/modules/keyboard'; import type Toolbar from 'quill/modules/toolbar'; import type { InternalModule, InternalTableSelectionModule, QuillTheme, QuillThemePicker, TableConstantsData, TableTextOptions, TableUpOptions } from './utils'; import Quill from 'quill'; -import { BlockOverride, BlockquoteOverride, CodeBlockOverride, ContainerFormat, HeaderOverride, ListItemOverride, ScrollOverride, TableBodyFormat, TableCellFormat, TableCellInnerFormat, TableColFormat, TableColgroupFormat, TableMainFormat, TableRowFormat, TableWrapperFormat } from './formats'; -import { blotName, createBEM, createSelectBox, debounce, findParentBlot, findParentBlots, isFunction, isObject, isString, limitDomInViewPort, randomId, tableUpEvent, tableUpSize } from './utils'; +import { BlockOverride, ContainerFormat, ScrollOverride, TableBodyFormat, TableCellFormat, TableCellInnerFormat, TableColFormat, TableColgroupFormat, TableMainFormat, TableRowFormat, TableWrapperFormat } from './formats'; +import { blotName, createBEM, createSelectBox, debounce, findParentBlot, findParentBlots, isFunction, isObject, isString, limitDomInViewPort, mixinClass, randomId, tableUpEvent, tableUpSize } from './utils'; const Delta = Quill.import('delta'); const Break = Quill.import('blots/break') as TypeParchment.BlotConstructor; @@ -136,14 +136,20 @@ export class TableUp { TableCellInnerFormat.requiredContainer = TableCellFormat; + const overrides = ['header', 'list', 'blockquote', 'code-block'].reduce((formatMap, format) => { + const key = `formats/${format}`; + const blot = Quill.import(key) as any; + formatMap[key] = class extends mixinClass(blot, [BlockOverride]) { + static register(): void {} + }; + return formatMap; + }, {} as Record); + Quill.register({ 'blots/scroll': ScrollOverride, 'blots/block': BlockOverride, + ...overrides, [`blots/${blotName.container}`]: ContainerFormat, - 'formats/header': HeaderOverride, - 'formats/list': ListItemOverride, - 'formats/blockquote': BlockquoteOverride, - 'formats/code-block': CodeBlockOverride, [`formats/${blotName.tableCell}`]: TableCellFormat, [`formats/${blotName.tableCellInner}`]: TableCellInnerFormat, [`formats/${blotName.tableRow}`]: TableRowFormat,