Skip to content
Snippets Groups Projects
Commit 1c12c8f8 authored by Giannis Kopanas's avatar Giannis Kopanas
Browse files

fix(merge): schema fix with other additions in the schema

parents 280f9fd9 fc498d3d
No related branches found
No related tags found
1 merge request!45Develop
Showing
with 229 additions and 71 deletions
export { default as TrackChangePlugin } from "./src/trackChanges/TrackChangePlugin";
export {
default as TrackChangePlugin
} from "./src/trackChanges/TrackChangePlugin";
export { default as FindAndReplacePlugin } from "./src/FindAndReplacePlugin";
export { default as OverlayPlugin } from "./src/overlay/OverlayPlugin";
export { default as LinkService } from "./src/LinkService/LinkService";
export { default as MenuService } from "./src/MenuService/MenuService";
export { default as RedoUndoService } from "./src/RedoUndoService/RedoUndoService";
export { default as AnnotationService } from "./src/AnnotationService/AnnotationService";
export { default as TextStyleService } from "./src/TextStyleService/TextStyleService";
export { default as PlaceholderService } from "./src/PlaceholderService/PlaceholderService";
export {
default as RedoUndoService
} from "./src/RedoUndoService/RedoUndoService";
export {
default as AnnotationService
} from "./src/AnnotationService/AnnotationService";
export {
default as TextStyleService
} from "./src/TextStyleService/TextStyleService";
export {
default as PlaceholderService
} from "./src/PlaceholderService/PlaceholderService";
export { default as ImageService } from "./src/ImageService/ImageService";
export { default as RulesService } from "./src/RulesService/RulesService";
export { default as SchemaService } from "./src/SchemaService/SchemaService";
export { default as ShortCutsService } from "./src/ShortCutsService/ShortCutsService";
export {
default as ShortCutsService
} from "./src/ShortCutsService/ShortCutsService";
export { default as Tool } from "./src/lib/Tools";
export { default as InlineAnnotationsService } from "./src/InlineAnnotations/InlineAnnotationsService";
export { default as OverlayService } from "./src/OverlayService/OverlayService";
export {
default as InlineAnnotationsService
} from "./src/InlineAnnotations/InlineAnnotationsService";
// export { default as OverlayService } from "./src/OverlayService/OverlayService";
......@@ -6,7 +6,7 @@ export default class Annotation extends ToolGroup {
tools = [];
constructor(
@inject("Code") code,
@inject("Em") em,
@inject("Emphasis") emphasis,
@inject("Link") link,
@inject("SmallCaps") smallcaps,
@inject("StrikeThrough") strikethrough,
......@@ -22,7 +22,7 @@ export default class Annotation extends ToolGroup {
super();
this.tools = [
code,
em,
emphasis,
link,
smallcaps,
strikethrough,
......
export { default as Blockquote } from "./Blockquote";
export { default as Em } from "./Em";
export { default as SmallCaps } from "./SmallCaps";
export { default as StrikeThrough } from "./StrikeThrough";
export { default as Strong } from "./Strong";
export { default as Subscript } from "./Subscript";
export { default as Superscript } from "./Superscript";
export { default as Underline } from "./Underline";
......
import Service from "wax-prosemirror-core/src/services/Service";
import Code from "./Code";
class CodeService extends Service {
boot() {}
......
......@@ -5,7 +5,7 @@ import { injectable } from "inversify";
import { icons } from "wax-prosemirror-components";
@injectable()
export default class Em extends Tools {
export default class Emphasis extends Tools {
title = "Toggle emphasis";
content = icons.em;
......
import Service from "wax-prosemirror-core/src/services/Service";
import { emphasisMark } from "wax-prosemirror-schema";
import Emphasis from "./Emphasis";
class EmphasisService extends Service {
boot() {
const createMark = this.container.get("CreateMark");
createMark({ em: emphasisMark });
}
register() {
this.container.bind("Emphasis").to(Emphasis);
}
}
export default EmphasisService;
import { toggleMark } from "prosemirror-commands";
import { markActive } from "../../lib/Utils";
import { markActive, promptForURL } from "../../lib/Utils";
import Tools from "../../lib/Tools";
import { injectable } from "inversify";
import { icons } from "wax-prosemirror-components";
@injectable()
export default class Code extends Tools {
title = "Toggle code";
content = icons.code;
export default class Link extends Tools {
title = "Add or remove link";
content = icons.link;
get run() {
return (state, dispatch) => {
toggleMark(state.config.schema.marks.code)(state, dispatch);
if (markActive(state.config.schema.marks.link)(state)) {
toggleMark(state.config.schema.marks.link)(state, dispatch);
return true;
}
const href = promptForURL();
if (!href) return false;
toggleMark(state.config.schema.marks.link, { href })(state, dispatch);
};
}
get enable() {
return state => !state.selection.empty;
}
get active() {
return state => {
return markActive(state.config.schema.marks.code)(state);
return markActive(state.config.schema.marks.link)(state);
};
}
}
import Service from "wax-prosemirror-core/src/services/Service";
import { linkMark } from "wax-prosemirror-schema";
import Link from "./Link";
class LinkService extends Service {
boot() {
const createMark = this.container.get("CreateMark");
createMark({ link: linkMark });
}
register() {
this.container.bind("Link").to(Link);
}
}
export default LinkService;
import Service from "wax-prosemirror-core/src/services/Service";
import { strongMark } from "wax-prosemirror-schema";
import Strong from "./Strong";
class StrongService extends Service {
boot() {
const createMark = this.container.get("CreateMark");
createMark({ strong: strongMark });
}
register() {
this.container.bind("Strong").to(Strong);
}
}
export default StrongService;
import CodeService from "./CodeService/CodeService";
export default [new CodeService()];
import StrongService from "./StrongService/StrongService";
import LinkService from "./LinkService/LinkService";
import EmphasisService from "./EmphasisService/EmphasisService";
export default [
new CodeService(),
new StrongService(),
new LinkService(),
new EmphasisService()
];
import React from "react";
export default props => {
console.log(props);
return (
<div>
<input type="text" />
</div>
);
};
import { toggleMark } from "prosemirror-commands";
import { markActive, promptForURL } from "../lib/Utils";
import Tools from "../lib/Tools";
import { injectable } from "inversify";
import { icons } from "wax-prosemirror-components";
@injectable()
export default class LinkTool extends Tools {
title = "Add or remove link";
content = icons.link;
get run() {
return (state, dispatch) => {
if (markActive(state.config.schema.marks.link)(state)) {
toggleMark(state.config.schema.marks.link)(state, dispatch);
return true;
}
const href = promptForURL();
if (!href) return false;
toggleMark(state.config.schema.marks.link, { href })(state, dispatch);
};
}
get enable() {
return state => !state.selection.empty;
}
get active() {
return state => {
return markActive(state.config.schema.marks.link)(state);
};
}
}
......@@ -2,3 +2,6 @@ export { default as DefaultSchema } from "./src/DefaultSchema";
export { default as EditoriaSchema } from "./src/editoria/EditoriaSchema";
export { default as XpubSchema } from "./src/XpubSchema";
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";
......@@ -3,60 +3,6 @@ const emDOM = ["em", 0],
codeDOM = ["code", 0];
const marks = {
// link: {
// attrs: {
// href: { default: null },
// rel: { default: "" },
// target: { default: "blank" },
// title: { default: null }
// },
// inclusive: false,
// parseDOM: [
// {
// tag: "a[href]",
// getAttrs: dom => {
// const href = dom.getAttribute("href");
// const target = href && href.indexOf("#") === 0 ? "" : "blank";
// return {
// href: dom.getAttribute("href"),
// title: dom.getAttribute("title"),
// target
// };
// }
// }
// ],
// toDOM(node) {
// return ["a", node.attrs, 0];
// }
// },
em: {
parseDOM: [{ tag: "i" }, { tag: "em" }, { style: "font-style=italic" }],
toDOM() {
return emDOM;
}
},
strong: {
parseDOM: [
{ tag: "strong" },
{
tag: "b",
getAttrs: node => node.style.fontWeight != "normal" && null
},
{
style: "font-weight",
getAttrs: value => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null
}
],
toDOM() {
return strongDOM;
}
},
// code: {
// parseDOM: [{ tag: "code" }],
// toDOM() {
// return codeDOM;
// }
// },
subscript: {
excludes: "superscript",
parseDOM: [{ tag: "sub" }, { style: "vertical-align=sub" }],
......
const code = {
parseDOM: [{ tag: "code" }],
toDOM() {
return ["code", 0];
parseDOM: { tag: "code" },
toDOM(hook, next) {
hook.value = ["code", 0];
next();
}
};
......
const em = {
parseDOM: [{ tag: "i" }, { tag: "em" }, { style: "font-style=italic" }],
toDOM(hook, next) {
hook.value = ["em", 0];
next();
}
};
export default em;
const link = {
attrs: {
href: { default: null },
rel: { default: "" },
target: { default: "blank" },
title: { default: null }
},
inclusive: false,
parseDOM: [
{
tag: "a[href]",
getAttrs: dom => {
const href = dom.getAttribute("href");
const target = href && href.indexOf("#") === 0 ? "" : "blank";
return {
href: dom.getAttribute("href"),
title: dom.getAttribute("title"),
target
};
}
}
],
toDOM(hook, next, node) {
hook.value = ["a", node.attrs, 0];
next();
}
};
export default link;
const strong = {
parseDOM: [
{ tag: "strong" },
{
tag: "b",
getAttrs: node => node.style.fontWeight != "normal" && null
},
{
style: "font-weight",
getAttrs: value => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null
}
],
toDOM(hook, next) {
hook.value = ["strong", 0];
next();
}
};
export default strong;
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment