aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/formattedText/schema_rts.ts
blob: 83561073c4dc4ab45f427890a63be67323b42e59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import { Schema, Slice } from "prosemirror-model";

import { nodes } from "./nodes_rts";
import { marks } from "./marks_rts";


// :: Schema
// This schema rougly corresponds to the document schema used by
// [CommonMark](http://commonmark.org/), minus the list elements,
// which are defined in the [`prosemirror-schema-list`](#schema-list)
// module.
//
// To reuse elements from this schema, extend or read from its
// `spec.nodes` and `spec.marks` [properties](#model.Schema.spec).

export const schema = new Schema({ nodes, marks });

const fromJson = schema.nodeFromJSON;

schema.nodeFromJSON = (json: any) => {
    const node = fromJson(json);
    if (json.type === schema.nodes.summary.name) {
        node.attrs.text = Slice.fromJSON(schema, node.attrs.textslice);
    }
    return node;
};