@curvenote/schema
Version:
Schema and markdown parser for @curvenote/editor
110 lines • 5.25 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSchema = exports.presets = exports.marks = exports.nodes = exports.reactiveNodes = exports.reactiveDisplayNodes = exports.mathNodesNoDisplay = exports.mathNodes = exports.citationNodes = exports.presentationalNodes = exports.listNodes = void 0;
const prosemirror_model_1 = require("prosemirror-model");
const basic = __importStar(require("./nodes/basic"));
const table_1 = require("./nodes/table");
const basicMarks = __importStar(require("./marks"));
const Nodes = __importStar(require("./nodes"));
exports.listNodes = {
ordered_list: basic.ordered_list,
bullet_list: basic.bullet_list,
list_item: basic.list_item,
};
exports.presentationalNodes = {
aside: Nodes.Aside.default,
callout: Nodes.Callout.default,
link_block: Nodes.LinkBlock.default,
iframe: Nodes.IFrame.default,
};
exports.citationNodes = {
cite: Nodes.Cite.default,
cite_group: Nodes.CiteGroup.default,
};
exports.mathNodes = {
math: Nodes.Math.default,
equation: Nodes.Equation.default,
};
exports.mathNodesNoDisplay = {
math: Nodes.Math.mathNoDisplay,
equation: Nodes.Equation.equationNoDisplay,
};
exports.reactiveDisplayNodes = {
// Does NOT include variable definitions
display: Nodes.Display.default,
dynamic: Nodes.Dynamic.default,
range: Nodes.Range.default,
switch: Nodes.Switch.default,
button: Nodes.Button.default,
};
exports.reactiveNodes = Object.assign({ variable: Nodes.Variable.default }, exports.reactiveDisplayNodes);
exports.nodes = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({
// Basic markdown
doc: basic.doc, text: basic.text, paragraph: basic.paragraph, heading: Nodes.Heading.default, footnote: Nodes.Footnote.default, blockquote: basic.blockquote, code_block: Nodes.Code.default, figure: Nodes.Figure.default, figcaption: Nodes.Figcaption.default, image: Nodes.Image.default, horizontal_rule: basic.horizontal_rule, hard_break: basic.hard_break, time: Nodes.Time.default }, exports.listNodes), table_1.nodes), exports.presentationalNodes), exports.citationNodes), exports.mathNodes), exports.reactiveNodes);
exports.marks = {
link: basicMarks.link,
code: basicMarks.code,
em: basicMarks.em,
strong: basicMarks.strong,
superscript: basicMarks.superscript,
subscript: basicMarks.subscript,
strikethrough: basicMarks.strikethrough,
underline: basicMarks.underline,
abbr: basicMarks.abbr,
};
exports.presets = {
full: {
nodes: exports.nodes,
marks: exports.marks,
},
paragraph: {
nodes: Object.assign(Object.assign(Object.assign({ doc: basic.docParagraph, paragraph: basic.paragraph, text: basic.text, hard_break: basic.hard_break, time: Nodes.Time.default, footnote: Nodes.Footnote.default }, exports.citationNodes), { math: exports.mathNodes.math }), exports.reactiveDisplayNodes),
marks: exports.marks,
},
comment: {
nodes: Object.assign(Object.assign(Object.assign({ doc: basic.docComment, paragraph: basic.paragraph, heading: Nodes.Heading.default, text: basic.text, blockquote: basic.blockquote, footnote: Nodes.Footnote.default, code_block: Nodes.Code.default, horizontal_rule: basic.horizontal_rule, hard_break: basic.hard_break, time: Nodes.Time.default, mention: Nodes.Mention.default }, exports.listNodes), exports.citationNodes), exports.mathNodesNoDisplay),
marks: exports.marks,
},
};
function getSchema(useSchema) {
if (typeof useSchema === 'string') {
switch (useSchema) {
case 'full':
return new prosemirror_model_1.Schema(exports.presets.full);
case 'paragraph':
return new prosemirror_model_1.Schema(exports.presets.paragraph);
case 'comment':
return new prosemirror_model_1.Schema(exports.presets.comment);
default:
throw new Error(`Schema '${useSchema}' is not defined.`);
}
}
if ('spec' in useSchema)
return useSchema;
return new prosemirror_model_1.Schema(useSchema);
}
exports.getSchema = getSchema;
//# sourceMappingURL=schemas.js.map