Skip to content

Commit

Permalink
refactor: create override format in register function
Browse files Browse the repository at this point in the history
  • Loading branch information
zzxming committed Feb 22, 2025
1 parent 9ed5c92 commit 2086f08
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 53 deletions.
13 changes: 4 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
// ...
Expand Down
8 changes: 0 additions & 8 deletions src/formats/overrides/blockquote.ts

This file was deleted.

8 changes: 0 additions & 8 deletions src/formats/overrides/code.ts

This file was deleted.

8 changes: 0 additions & 8 deletions src/formats/overrides/header.ts

This file was deleted.

4 changes: 0 additions & 4 deletions src/formats/overrides/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,2 @@
export * from './block';
export * from './blockquote';
export * from './code';
export * from './header';
export * from './list';
export * from './scroll';
10 changes: 0 additions & 10 deletions src/formats/overrides/list.ts

This file was deleted.

18 changes: 12 additions & 6 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<string, Function>);

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,
Expand Down

0 comments on commit 2086f08

Please sign in to comment.