UNPKG

@rtdui/editor

Version:

React rich text editor based on tiptap

33 lines (30 loc) 1.33 kB
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs'); const require_markdown_it_katex = require('./markdown-it-katex.cjs'); let _tiptap_core = require("@tiptap/core"); let _tiptap_pm_state = require("@tiptap/pm/state"); let markdown_it = require("markdown-it"); markdown_it = require_runtime.__toESM(markdown_it); let _tiptap_pm_model = require("@tiptap/pm/model"); //#region packages/editor/src/RichTextEditor/tiptap_extensions/extension-markdown-paste/markdownPaste.ts const MarkdownPaste = _tiptap_core.Extension.create({ name: "markdownPaste", addProseMirrorPlugins() { return [new _tiptap_pm_state.Plugin({ key: new _tiptap_pm_state.PluginKey("markdownPaste"), props: { handlePaste: (view, event) => { if (view.state.selection.$head.parent.type.name !== "paragraph") return false; const body = (0, _tiptap_core.elementFromString)(new markdown_it.default({ html: false, highlight: (str, lang) => "", linkify: true, breaks: true }).use(require_markdown_it_katex.default).render(event.clipboardData?.getData("text") || "")); const node = _tiptap_pm_model.DOMParser.fromSchema(this.editor.schema).parse(body); this.editor.commands.insertContent(node.toJSON()); return true; } } })]; } }); //#endregion exports.MarkdownPaste = MarkdownPaste;