diff --git a/editors/demo/src/Editoria/config/config.js b/editors/demo/src/Editoria/config/config.js index 12a61879e82dfecfdbc7052fcdba44d61be8796c..1d200414ff9d43fd024a3675a60d7865fe757c24 100644 --- a/editors/demo/src/Editoria/config/config.js +++ b/editors/demo/src/Editoria/config/config.js @@ -45,7 +45,7 @@ import { CustomTagService, } from 'wax-prosemirror-services'; -import { DefaultSchema } from 'wax-prosemirror-utilities'; +import { EditoriaSchema } from 'wax-prosemirror-utilities'; import invisibles, { space, @@ -116,7 +116,7 @@ export default { // OrderedListService: { subList: false }, // BulletListService: { subList: false }, // JoinUpService: { subList: false }, - SchemaService: DefaultSchema, + SchemaService: EditoriaSchema, TitleService: { updateTitle }, RulesService: [emDash, ellipsis], ShortCutsService: {}, diff --git a/wax-prosemirror-utilities/index.js b/wax-prosemirror-utilities/index.js index 5abfc388661e794874a54c51e5c5800cb0b9e71f..1c22b04070945cdbae3b69a56390483156ea16af 100644 --- a/wax-prosemirror-utilities/index.js +++ b/wax-prosemirror-utilities/index.js @@ -2,3 +2,4 @@ export { default as SchemaHelpers } from './src/schema/SchemaHelpers'; export { default as DocumentHelpers } from './src/document/DocumentHelpers'; export { default as Commands } from './src/commands/Commands'; export { default as DefaultSchema } from './src/schema/DefaultSchema'; +export { default as EditoriaSchema } from './src/schema/EditoriaSchema'; diff --git a/wax-prosemirror-utilities/src/schema/DefaultSchema.js b/wax-prosemirror-utilities/src/schema/DefaultSchema.js index 8b5d1f8c3697fa51353c899b5e71f3581ca91741..3ca58aaa85f49ee9280f170272fe76f2d38f6cc6 100644 --- a/wax-prosemirror-utilities/src/schema/DefaultSchema.js +++ b/wax-prosemirror-utilities/src/schema/DefaultSchema.js @@ -1,5 +1,3 @@ -import SchemaHelpers from './SchemaHelpers'; - export default { nodes: { doc: { @@ -21,29 +19,20 @@ export default { group: 'block', content: 'inline*', attrs: { - id: { default: '' }, class: { default: 'paragraph' }, - track: { default: [] }, - group: { default: '' }, - viewid: { default: '' }, }, parseDOM: [ { tag: 'p.paragraph', getAttrs(dom) { return { - id: dom.dataset.id, class: dom.getAttribute('class'), - track: SchemaHelpers.parseTracks(dom.dataset.track), - group: dom.dataset.group, - viewid: dom.dataset.viewid, }; }, }, ], toDOM(node) { - const attrs = SchemaHelpers.blockLevelToDOM(node); - return ['p', attrs, 0]; + return ['p', node.attrs, 0]; }, }, }, diff --git a/wax-prosemirror-utilities/src/schema/EditoriaSchema.js b/wax-prosemirror-utilities/src/schema/EditoriaSchema.js new file mode 100644 index 0000000000000000000000000000000000000000..8b5d1f8c3697fa51353c899b5e71f3581ca91741 --- /dev/null +++ b/wax-prosemirror-utilities/src/schema/EditoriaSchema.js @@ -0,0 +1,51 @@ +import SchemaHelpers from './SchemaHelpers'; + +export default { + nodes: { + doc: { + content: 'block+', + }, + text: { + group: 'inline', + }, + hard_break: { + inline: true, + group: 'inline', + selectable: false, + parseDOM: [{ tag: 'br' }], + toDOM() { + return ['br']; + }, + }, + paragraph: { + group: 'block', + content: 'inline*', + attrs: { + id: { default: '' }, + class: { default: 'paragraph' }, + track: { default: [] }, + group: { default: '' }, + viewid: { default: '' }, + }, + parseDOM: [ + { + tag: 'p.paragraph', + getAttrs(dom) { + return { + id: dom.dataset.id, + class: dom.getAttribute('class'), + track: SchemaHelpers.parseTracks(dom.dataset.track), + group: dom.dataset.group, + viewid: dom.dataset.viewid, + }; + }, + }, + ], + toDOM(node) { + const attrs = SchemaHelpers.blockLevelToDOM(node); + return ['p', attrs, 0]; + }, + }, + }, + marks: {}, +};