Skip to content

Commit cadf35f

Browse files
add disableExtensions option to allow disabling built in extensions by name. (#858)
* add disableExtensions to allow disabling built in extensions by name. * Removed redundant `enableBlockNoteExtensions` option --------- Co-authored-by: Matthew Lipski <[email protected]>
1 parent 0cc8932 commit cadf35f

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

packages/core/src/editor/BlockNoteEditor.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,7 @@ export type BlockNoteEditorOptions<
7373
ISchema extends InlineContentSchema,
7474
SSchema extends StyleSchema
7575
> = {
76-
// TODO: Figure out if enableBlockNoteExtensions/disableHistoryExtension are needed and document them.
77-
enableBlockNoteExtensions: boolean;
78-
76+
disableExtensions: string[];
7977
/**
8078
* A dictionary object containing translations for the editor.
8179
*/
@@ -280,6 +278,7 @@ export class BlockNoteEditor<
280278
inlineContentSpecs: this.schema.inlineContentSpecs,
281279
collaboration: newOptions.collaboration,
282280
trailingBlock: newOptions.trailingBlock,
281+
disableExtensions: newOptions.disableExtensions,
283282
});
284283

285284
const blockNoteUIExtension = Extension.create({
@@ -336,10 +335,10 @@ export class BlockNoteEditor<
336335
...blockNoteTipTapOptions,
337336
...newOptions._tiptapOptions,
338337
content: initialContent,
339-
extensions:
340-
newOptions.enableBlockNoteExtensions === false
341-
? newOptions._tiptapOptions?.extensions || []
342-
: [...(newOptions._tiptapOptions?.extensions || []), ...extensions],
338+
extensions: [
339+
...(newOptions._tiptapOptions?.extensions || []),
340+
...extensions,
341+
],
343342
editorProps: {
344343
...newOptions._tiptapOptions?.editorProps,
345344
attributes: {

packages/core/src/editor/BlockNoteExtensions.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export const getBlockNoteExtensions = <
5353
provider: any;
5454
renderCursor?: (user: any) => HTMLElement;
5555
};
56+
disableExtensions: string[] | undefined;
5657
}) => {
5758
const ret: Extensions = [
5859
extensions.ClipboardTextSerializer,
@@ -193,5 +194,6 @@ export const getBlockNoteExtensions = <
193194
ret.push(History);
194195
}
195196

196-
return ret;
197+
const disableExtensions: string[] = opts.disableExtensions || [];
198+
return ret.filter(ex => !disableExtensions.includes(ex.name));
197199
};

0 commit comments

Comments
 (0)