From 64c2855042a82118c8f3c33670201d130e2acd65 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Thu, 9 Jan 2020 19:51:40 +0200 Subject: [PATCH] title node --- wax-prosemirror-schema/src/nodes/authorNode.js | 2 +- wax-prosemirror-schema/src/nodes/titleNode.js | 17 ++++++++++------- .../TitleService/TitleService.js | 8 ++++++++ .../src/DisplayBlockLevel/index.js | 4 ++-- .../src/TextStyleService/TextStyle.js | 6 ++---- .../src/TextStyleService/tools/index.js | 1 - .../DisplayToolGroupService/Display.js | 4 ++-- 7 files changed, 25 insertions(+), 17 deletions(-) diff --git a/wax-prosemirror-schema/src/nodes/authorNode.js b/wax-prosemirror-schema/src/nodes/authorNode.js index a19909f2c..632b104e9 100644 --- a/wax-prosemirror-schema/src/nodes/authorNode.js +++ b/wax-prosemirror-schema/src/nodes/authorNode.js @@ -1,4 +1,4 @@ -import { parseFormatList, parseTracks, blockLevelToDOM } from "./helpers"; +import { parseTracks, blockLevelToDOM } from "./helpers"; const author = { content: "inline*", group: "block", diff --git a/wax-prosemirror-schema/src/nodes/titleNode.js b/wax-prosemirror-schema/src/nodes/titleNode.js index 0a6f528b1..c7c2b1bf0 100644 --- a/wax-prosemirror-schema/src/nodes/titleNode.js +++ b/wax-prosemirror-schema/src/nodes/titleNode.js @@ -1,3 +1,4 @@ +import { parseTracks, blockLevelToDOM } from "./helpers"; const title = { content: "inline*", group: "block", @@ -10,17 +11,19 @@ const title = { parseDOM: [ { tag: "p.title", - getAttrs(dom) { - return { + getAttrs(hook, next) { + Object.assign(hook, { class: dom.getAttribute("class"), - track: parseTracks(dom.dataset.track) - }; + track: parseTracks(hook.dom.dataset.track) + }); + next(); } } ], - toDOM(node) { - const attrs = blockLevelToDOM(node); - return ["p", attrs, 0]; + toDOM(hook, next) { + const attrs = blockLevelToDOM(hook.node); + hook.value = ["p", attrs, 0]; + next(); } }; diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js index e1586b222..05221017b 100644 --- a/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js @@ -1,4 +1,5 @@ import Service from "wax-prosemirror-core/src/services/Service"; +import { titleNode } from "wax-prosemirror-schema"; import Title from "./Title"; class TitleService extends Service { @@ -6,6 +7,13 @@ class TitleService extends Service { register() { this.container.bind("Title").to(Title); + const createNode = this.container.get("CreateNode"); + createNode( + { + title: titleNode + }, + { toWaxSchema: true } + ); } } diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/index.js b/wax-prosemirror-services/src/DisplayBlockLevel/index.js index 3661a97fe..b6bb3a227 100644 --- a/wax-prosemirror-services/src/DisplayBlockLevel/index.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/index.js @@ -5,9 +5,9 @@ import SubTitleService from "./SubTitleService/SubTitleService"; import TitleService from "./TitleService/TitleService"; export default [ - new AuthorService() + new AuthorService(), // new EpigraphPoetryService(), // new HeadingService(), // new SubTitleService(), - // new TitleService() + new TitleService() ]; diff --git a/wax-prosemirror-services/src/TextStyleService/TextStyle.js b/wax-prosemirror-services/src/TextStyleService/TextStyle.js index f00cb6d29..c2df3f684 100644 --- a/wax-prosemirror-services/src/TextStyleService/TextStyle.js +++ b/wax-prosemirror-services/src/TextStyleService/TextStyle.js @@ -19,8 +19,7 @@ export default class Annotation extends ToolGroup { @inject("Heading2") heading2, @inject("Heading3") heading3, @inject("Plain") plain, - @inject("Subtitle") subtitle, - @inject("Title") title + @inject("Subtitle") subtitle ) { super(); this.tools = [ @@ -30,8 +29,7 @@ export default class Annotation extends ToolGroup { heading2, heading3, plain, - subtitle, - title + subtitle ]; } } diff --git a/wax-prosemirror-services/src/TextStyleService/tools/index.js b/wax-prosemirror-services/src/TextStyleService/tools/index.js index 7a9b47da0..c4f818be1 100644 --- a/wax-prosemirror-services/src/TextStyleService/tools/index.js +++ b/wax-prosemirror-services/src/TextStyleService/tools/index.js @@ -4,5 +4,4 @@ export { default as Heading1 } from "./Heading1"; export { default as Heading2 } from "./Heading2"; export { default as Heading3 } from "./Heading3"; export { default as Plain } from "./Plain"; -export { default as Title } from "./Title"; export { default as Subtitle } from "./Subtitle"; diff --git a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js index af73f1889..3599246f4 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js +++ b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js @@ -13,9 +13,9 @@ class Display extends ToolGroup { </span> ); }; - constructor(@inject("Author") author) { + constructor(@inject("Author") author, @inject("Title") title) { super(); - this.tools = [author]; + this.tools = [title, author]; } } -- GitLab