@blocknote/core
Version:
A "Notion-style" block-based extensible text editor built on top of Prosemirror and Tiptap.
41 lines (38 loc) • 903 B
text/typescript
import { BlockNoteSchema } from "../../editor/BlockNoteSchema.js";
import {
BlockSchema,
InlineContentSchema,
StyleSchema,
} from "../../schema/index.js";
import { PageBreak } from "./PageBreakBlockContent.js";
export const pageBreakSchema = BlockNoteSchema.create({
blockSpecs: {
pageBreak: PageBreak,
},
});
/**
* Adds page break support to the given schema.
*/
export const withPageBreak = <
B extends BlockSchema,
I extends InlineContentSchema,
S extends StyleSchema,
>(
schema: BlockNoteSchema<B, I, S>,
) => {
return BlockNoteSchema.create({
blockSpecs: {
...schema.blockSpecs,
...pageBreakSchema.blockSpecs,
},
inlineContentSpecs: schema.inlineContentSpecs,
styleSpecs: schema.styleSpecs,
}) as any as BlockNoteSchema<
// typescript needs some help here
B & {
pageBreak: typeof PageBreak.config;
},
I,
S
>;
};