Files
mnote/wolai-frontend/src/components/editor/schema.ts
T

39 lines
1.1 KiB
TypeScript

"use client";
import {
BlockNoteSchema,
createHeadingBlockSpec,
defaultBlockSpecs,
defaultInlineContentSpecs,
defaultStyleSpecs,
} from "@blocknote/core";
import { pageReferenceBlock } from "./blocks/PageReferenceBlock";
import { advancedTodoBlock } from "./blocks/AdvancedTodoBlock";
import { progressBlock } from "./blocks/ProgressBlock";
import { mediaBlock } from "./blocks/MediaBlock";
import { onlineTableBlock } from "./blocks/OnlineTableBlock";
const headingSpec =
typeof window === "undefined"
? defaultBlockSpecs.heading
: createHeadingBlockSpec({
levels: [1, 2, 3, 4, 5],
allowToggleHeadings: true,
});
export const customBlockSchema = BlockNoteSchema.create({
blockSpecs: {
...defaultBlockSpecs,
heading: headingSpec,
pageReference: pageReferenceBlock,
advancedTodo: advancedTodoBlock,
progressMeter: progressBlock,
media: mediaBlock,
onlineTable: onlineTableBlock(),
},
inlineContentSpecs: defaultInlineContentSpecs,
styleSpecs: defaultStyleSpecs,
});
export type CustomBlockSchema = typeof customBlockSchema.blockSchema;