Files
outline/shared/editor/marks/Highlight.ts
2022-01-19 18:43:15 -08:00

46 lines
923 B
TypeScript

import { toggleMark } from "prosemirror-commands";
import { MarkSpec, MarkType } from "prosemirror-model";
import markInputRule from "../lib/markInputRule";
import markRule from "../rules/mark";
import Mark from "./Mark";
export default class Highlight extends Mark {
get name() {
return "highlight";
}
get schema(): MarkSpec {
return {
parseDOM: [{ tag: "mark" }],
toDOM: () => ["mark"],
};
}
inputRules({ type }: { type: MarkType }) {
return [markInputRule(/(?:==)([^=]+)(?:==)$/, type)];
}
keys({ type }: { type: MarkType }) {
return {
"Mod-Ctrl-h": toggleMark(type),
};
}
get rulePlugins() {
return [markRule({ delim: "==", mark: "highlight" })];
}
toMarkdown() {
return {
open: "==",
close: "==",
mixable: true,
expelEnclosingWhitespace: true,
};
}
parseMarkdown() {
return { mark: "highlight" };
}
}