mirror of
https://github.com/outline/outline.git
synced 2026-06-13 11:25:03 +03:00
ca21b8a17d
* fix: Sync schema between frontend editor and API Allow lists in basic schema * test * snap
59 lines
1.3 KiB
TypeScript
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,
|
|
});
|