From 384e0d9c903d704c3dc582eb9c885eee07e334d6 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Tue, 28 Jul 2020 02:59:51 +0300 Subject: [PATCH] code block files --- wax-prosemirror-components/package.json | 2 +- wax-prosemirror-core/package.json | 2 +- wax-prosemirror-layouts/package.json | 2 +- wax-prosemirror-plugins/package.json | 2 +- wax-prosemirror-schema/index.js | 59 ++++++++++--------- wax-prosemirror-schema/package.json | 2 +- .../src/nodes/codeBlockNode.js | 24 ++++++++ wax-prosemirror-services/index.js | 2 + wax-prosemirror-services/package.json | 3 +- .../src/CodeBlockService/CodeBlockService.js | 16 +++++ .../src/CodeBlockService/CodeBlockTool.js | 16 +++++ .../BaseToolGroupService.js | 8 +-- .../CodeBlockToolGroupService/CodeBlock.js | 13 ++++ .../CodeBlockToolGroupService.js | 10 ++++ .../DisplayToolGroupService.js | 8 +-- .../ImageToolGroupService.js | 8 +-- .../ListToolGroupService.js | 8 +-- .../NoteToolGroupService.js | 8 +-- .../TableToolGroupService.js | 8 +-- .../TextToolGroupService.js | 8 +-- wax-prosemirror-themes/package.json | 2 +- wax-prosemirror-utilities/package.json | 2 +- 22 files changed, 141 insertions(+), 72 deletions(-) create mode 100644 wax-prosemirror-schema/src/nodes/codeBlockNode.js create mode 100644 wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js create mode 100644 wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js diff --git a/wax-prosemirror-components/package.json b/wax-prosemirror-components/package.json index 0e144b1f2..50878775a 100644 --- a/wax-prosemirror-components/package.json +++ b/wax-prosemirror-components/package.json @@ -4,7 +4,7 @@ "version": "0.0.11", "description": "Wax prosemirror UI components", "license": "MIT", - "main": "dist/index.js", + "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "BABEL_ENV=production rollup -c" diff --git a/wax-prosemirror-core/package.json b/wax-prosemirror-core/package.json index 482e31200..2bc7a5ffd 100644 --- a/wax-prosemirror-core/package.json +++ b/wax-prosemirror-core/package.json @@ -4,7 +4,7 @@ "version": "0.0.11", "description": "Wax prosemirror core", "license": "MIT", - "main": "dist/index.js", + "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "BABEL_ENV=production rollup -c" diff --git a/wax-prosemirror-layouts/package.json b/wax-prosemirror-layouts/package.json index d753bac20..d32477de5 100644 --- a/wax-prosemirror-layouts/package.json +++ b/wax-prosemirror-layouts/package.json @@ -4,7 +4,7 @@ "version": "0.0.11", "description": "Wax prosemirror layouts", "license": "MIT", - "main": "dist/index.js", + "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "BABEL_ENV=production rollup -c" diff --git a/wax-prosemirror-plugins/package.json b/wax-prosemirror-plugins/package.json index c60d16ece..e57c59288 100644 --- a/wax-prosemirror-plugins/package.json +++ b/wax-prosemirror-plugins/package.json @@ -4,7 +4,7 @@ "version": "0.0.11", "description": "Wax prosemirror plugins", "license": "MIT", - "main": "dist/index.js", + "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "BABEL_ENV=production rollup -c" diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js index 5a1ac5c33..d821cda25 100644 --- a/wax-prosemirror-schema/index.js +++ b/wax-prosemirror-schema/index.js @@ -1,42 +1,43 @@ /* LIST OF SUPPORTED MARKS */ -export { default as codeMark } from "./src/marks/codeMark"; -export { default as strongMark } from "./src/marks/strongMark"; -export { default as linkMark } from "./src/marks/linkMark"; -export { default as emphasisMark } from "./src/marks/emphasisMark"; -export { default as subscriptMark } from "./src/marks/subscriptMark"; -export { default as superscriptMark } from "./src/marks/superscriptMark"; -export { default as strikethroughMark } from "./src/marks/strikethroughMark"; -export { default as underlineMark } from "./src/marks/underlineMark"; -export { default as smallcapsMark } from "./src/marks/smallcapsMark"; -export { default as sourceMark } from "./src/marks/sourceMark"; -export { default as commentMark } from "./src/marks/commentMark"; +export { default as codeMark } from './src/marks/codeMark'; +export { default as strongMark } from './src/marks/strongMark'; +export { default as linkMark } from './src/marks/linkMark'; +export { default as emphasisMark } from './src/marks/emphasisMark'; +export { default as subscriptMark } from './src/marks/subscriptMark'; +export { default as superscriptMark } from './src/marks/superscriptMark'; +export { default as strikethroughMark } from './src/marks/strikethroughMark'; +export { default as underlineMark } from './src/marks/underlineMark'; +export { default as smallcapsMark } from './src/marks/smallcapsMark'; +export { default as sourceMark } from './src/marks/sourceMark'; +export { default as commentMark } from './src/marks/commentMark'; /* LIST OF TRACK CHANGES MARKS */ -export { default as trackChangesMarks } from "./src/marks/trackChangesMarks"; +export { default as trackChangesMarks } from './src/marks/trackChangesMarks'; /* LIST OF SUPPORTED NODES */ -export { default as authorNode } from "./src/nodes/authorNode"; -export { default as epigraphPoetryNode } from "./src/nodes/epigraphPoetryNode"; -export { default as epigraphProseNode } from "./src/nodes/epigraphProseNode"; -export { default as sourceNoteNode } from "./src/nodes/sourceNoteNode"; -export { default as paragraphContNode } from "./src/nodes/paragraphContNode"; -export { default as extractProseNode } from "./src/nodes/extractProseNode"; -export { default as extractPoetryNode } from "./src/nodes/extractPoetryNode"; -export { default as titleNode } from "./src/nodes/titleNode"; -export { default as orderedListNode } from "./src/nodes/orderedListNode"; -export { default as bulletListNode } from "./src/nodes/bulletListNode"; -export { default as listItemNode } from "./src/nodes/listItemNode"; -export { default as subTitleNode } from "./src/nodes/subTitleNode"; -export { default as imageNode } from "./src/nodes/imageNode"; -export { default as headingNode } from "./src/nodes/headingNode"; -export { default as blockQuoteNode } from "./src/nodes/blockQuoteNode"; -export { default as footNoteNode } from "./src/nodes/footNoteNode"; +export { default as authorNode } from './src/nodes/authorNode'; +export { default as epigraphPoetryNode } from './src/nodes/epigraphPoetryNode'; +export { default as epigraphProseNode } from './src/nodes/epigraphProseNode'; +export { default as sourceNoteNode } from './src/nodes/sourceNoteNode'; +export { default as paragraphContNode } from './src/nodes/paragraphContNode'; +export { default as extractProseNode } from './src/nodes/extractProseNode'; +export { default as extractPoetryNode } from './src/nodes/extractPoetryNode'; +export { default as titleNode } from './src/nodes/titleNode'; +export { default as orderedListNode } from './src/nodes/orderedListNode'; +export { default as bulletListNode } from './src/nodes/bulletListNode'; +export { default as listItemNode } from './src/nodes/listItemNode'; +export { default as subTitleNode } from './src/nodes/subTitleNode'; +export { default as imageNode } from './src/nodes/imageNode'; +export { default as headingNode } from './src/nodes/headingNode'; +export { default as blockQuoteNode } from './src/nodes/blockQuoteNode'; +export { default as footNoteNode } from './src/nodes/footNoteNode'; +export { default as codeBlockNode } from './src/nodes/codeBlockNode'; /* LIST OF TRACK CHANGES NODES */ -export { default as trackChangesNodes } from "./src/nodes/trackChangesNodes"; +export { default as trackChangesNodes } from './src/nodes/trackChangesNodes'; diff --git a/wax-prosemirror-schema/package.json b/wax-prosemirror-schema/package.json index 7dbab3122..6aff35c7d 100644 --- a/wax-prosemirror-schema/package.json +++ b/wax-prosemirror-schema/package.json @@ -4,7 +4,7 @@ "version": "0.0.11", "description": "Wax prosemirror schema", "license": "MIT", - "main": "dist/index.js", + "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "BABEL_ENV=production rollup -c" diff --git a/wax-prosemirror-schema/src/nodes/codeBlockNode.js b/wax-prosemirror-schema/src/nodes/codeBlockNode.js new file mode 100644 index 000000000..18ae5b294 --- /dev/null +++ b/wax-prosemirror-schema/src/nodes/codeBlockNode.js @@ -0,0 +1,24 @@ +const codeBlock = { + content: 'text*', + group: 'block', + code: true, + defining: true, + marks: '', + attrs: { params: { default: '' } }, + parseDOM: [ + { + tag: 'pre', + preserveWhitespace: 'full', + getAttrs(dom) { + return { + params: dom.dataset.params, + }; + }, + }, + ], + toDOM(node) { + return ['pre', { 'data-params': node.attrs.params }, ['code', 0]]; + }, +}; + +export default codeBlock; diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js index 614241f5f..0f53929b1 100644 --- a/wax-prosemirror-services/index.js +++ b/wax-prosemirror-services/index.js @@ -27,6 +27,7 @@ export { default as TextBlockLevelService } from './src/TextBlockLevel/TextBlock export { default as DisplayBlockLevelService } from './src/DisplayBlockLevel/DisplayBlockLevelService'; export { default as NoteService } from './src/NoteService/NoteService'; export { default as CommentsService } from './src/CommentsService/CommentsService'; +export { default as CodeBlockService } from './src/CodeBlockService/CodeBlockService'; /* ToolGroups */ @@ -38,3 +39,4 @@ export { default as TableToolGroupService } from './src/WaxToolGroups/TableToolG export { default as DisplayToolGroupService } from './src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService'; export { default as TextToolGroupService } from './src/WaxToolGroups/TextToolGroupService/TextToolGroupService'; export { default as NoteToolGroupService } from './src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService'; +export { default as CodeBlockToolGroupService } from './src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService'; diff --git a/wax-prosemirror-services/package.json b/wax-prosemirror-services/package.json index 03e3063ae..14d168651 100644 --- a/wax-prosemirror-services/package.json +++ b/wax-prosemirror-services/package.json @@ -4,7 +4,7 @@ "version": "0.0.11", "description": "Wax prosemirror services", "license": "MIT", - "main": "dist/index.js", + "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "BABEL_ENV=production rollup -c" @@ -18,6 +18,7 @@ "wax-prosemirror-core": "^0.0.11", "wax-prosemirror-layouts": "^0.0.11", "wax-prosemirror-utilities": "^0.0.11", + "wax-prosemirror-schema": "^0.0.11", "prosemirror-commands": "^1.1.3", "prosemirror-transform": "^1.2.3", "prosemirror-keymap": "^1.1.3", diff --git a/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js new file mode 100644 index 000000000..29c71105c --- /dev/null +++ b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js @@ -0,0 +1,16 @@ +import { codeBlockNode } from 'wax-prosemirror-schema'; +import Service from '../Service'; +import CodeBlockTool from './CodeBlockTool'; + +export default class CodeBlockService extends Service { + boot() {} + + register() { + this.container.bind('CodeBlock').to(CodeBlockTool); + const createNode = this.container.get('CreateNode'); + + createNode({ + codeblock: codeBlockNode, + }); + } +} diff --git a/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js new file mode 100644 index 000000000..8e7faff1b --- /dev/null +++ b/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js @@ -0,0 +1,16 @@ +import Tools from '../lib/Tools'; +import { injectable } from 'inversify'; +import { icons } from 'wax-prosemirror-components'; +import { Fragment } from 'prosemirror-model'; + +@injectable() +class CodeBlockTool extends Tools { + title = 'Insert Code Block'; + content = icons.footnote; + + get run() {} + + get enable() {} +} + +export default CodeBlockTool; diff --git a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js index 7429579fc..e70cdd3c3 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js +++ b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js @@ -1,11 +1,9 @@ -import Service from "../../Service"; -import Base from "./Base"; +import Service from '../../Service'; +import Base from './Base'; class BaseToolGroupService extends Service { - name = "BaseToolGroupService"; - register() { - this.container.bind("Base").to(Base); + this.container.bind('Base').to(Base); } } diff --git a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js new file mode 100644 index 000000000..8ad99cdf3 --- /dev/null +++ b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js @@ -0,0 +1,13 @@ +import { injectable, inject } from 'inversify'; +import ToolGroup from '../../lib/ToolGroup'; + +@injectable() +class CodeBlock extends ToolGroup { + tools = []; + constructor(@inject('CodeBlock') codeblock) { + super(); + this.tools = [codeblock]; + } +} + +export default CodeBlock; diff --git a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js new file mode 100644 index 000000000..622ad204c --- /dev/null +++ b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js @@ -0,0 +1,10 @@ +import Service from '../../Service'; +import CodeBlock from './CodeBlock'; + +class CodeBlockToolGroupService extends Service { + register() { + this.container.bind('CodeBlock').to(CodeBlock); + } +} + +export default CodeBlockToolGroupService; diff --git a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js index 8ffc1852e..ae115faba 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js +++ b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js @@ -1,11 +1,9 @@ -import Service from "../../Service"; -import Display from "./Display"; +import Service from '../../Service'; +import Display from './Display'; class DisplayToolGroupService extends Service { - name = "DisplayToolGroupService"; - register() { - this.container.bind("Display").to(Display); + this.container.bind('Display').to(Display); } } diff --git a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js index cd249031a..36b95737d 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js +++ b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js @@ -1,11 +1,9 @@ -import Service from "../../Service"; -import Images from "./Images"; +import Service from '../../Service'; +import Images from './Images'; class ImageToolGroupService extends Service { - name = "ImageToolGroupService"; - register() { - this.container.bind("Images").to(Images); + this.container.bind('Images').to(Images); } } diff --git a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js index 815d423e2..6e32aabb0 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js +++ b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js @@ -1,11 +1,9 @@ -import Service from "../../Service"; -import Lists from "./Lists"; +import Service from '../../Service'; +import Lists from './Lists'; class ListToolGroupService extends Service { - name = "ListToolGroupService"; - register() { - this.container.bind("Lists").to(Lists); + this.container.bind('Lists').to(Lists); } } diff --git a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js index 15d469325..8f993428b 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js +++ b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js @@ -1,11 +1,9 @@ -import Service from "../../Service"; -import Notes from "./Notes"; +import Service from '../../Service'; +import Notes from './Notes'; class NoteToolGroupService extends Service { - name = "NoteToolGroupService"; - register() { - this.container.bind("Notes").to(Notes); + this.container.bind('Notes').to(Notes); } } diff --git a/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js index 3c0b40a52..457a6fbc9 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js +++ b/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js @@ -1,11 +1,9 @@ -import Service from "../../Service"; -import Tables from "./Tables"; +import Service from '../../Service'; +import Tables from './Tables'; class TableToolGroupService extends Service { - name = "TableToolGroupService"; - register() { - this.container.bind("Tables").to(Tables); + this.container.bind('Tables').to(Tables); } } diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js index 7b074f52f..397d4b978 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js +++ b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js @@ -1,11 +1,9 @@ -import Service from "../../Service"; -import Text from "./Text"; +import Service from '../../Service'; +import Text from './Text'; class TextToolGroupService extends Service { - name = "TextToolGroupService"; - register() { - this.container.bind("Text").to(Text); + this.container.bind('Text').to(Text); } } diff --git a/wax-prosemirror-themes/package.json b/wax-prosemirror-themes/package.json index 21d4ecbf4..0abb1c7bd 100644 --- a/wax-prosemirror-themes/package.json +++ b/wax-prosemirror-themes/package.json @@ -4,7 +4,7 @@ "version": "0.0.11", "description": "Wax prosemirror themes", "license": "MIT", - "main": "dist/index.js", + "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "BABEL_ENV=production rollup -c" diff --git a/wax-prosemirror-utilities/package.json b/wax-prosemirror-utilities/package.json index 52bb22f00..d0439a75f 100644 --- a/wax-prosemirror-utilities/package.json +++ b/wax-prosemirror-utilities/package.json @@ -4,7 +4,7 @@ "version": "0.0.11", "description": "Wax prosemirror utilities", "license": "MIT", - "main": "dist/index.js", + "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "BABEL_ENV=production rollup -c" -- GitLab