Files
outline/server/editor/index.ts
T
Tom Moor ca21b8a17d fix: Sync schema between frontend editor and API (#11101)
* fix: Sync schema between frontend editor and API
Allow lists in basic schema

* test

* snap
2026-01-07 22:10:41 -05:00

59 lines
1.3 KiB
TypeScript

import { Schema } from "prosemirror-model";
import ExtensionManager from "@shared/editor/lib/ExtensionManager";
import {
basicExtensions,
richExtensions,
withComments,
} from "@shared/editor/nodes";
const extensions = withComments(richExtensions);
export const extensionManager = new ExtensionManager(extensions);
export const schema = new Schema({
nodes: extensionManager.nodes,
marks: extensionManager.marks,
});
for (const extension of extensionManager.extensions) {
extension.bindEditor({
schema,
props: {
theme: {
isDark: false,
},
},
} as any);
}
export const parser = extensionManager.parser({
schema,
plugins: extensionManager.rulePlugins,
});
export const serializer = extensionManager.serializer();
export const plugins = extensionManager.plugins;
export const basicExtensionManager = new ExtensionManager(basicExtensions);
export const basicSchema = new Schema({
nodes: basicExtensionManager.nodes,
marks: basicExtensionManager.marks,
});
for (const extension of basicExtensionManager.extensions) {
extension.bindEditor({
schema: basicSchema,
props: {
theme: {
isDark: false,
},
},
} as any);
}
export const basicParser = basicExtensionManager.parser({
schema: basicSchema,
plugins: basicExtensionManager.rulePlugins,
});