我目前正在尝试使用一个名为tiptap 的库来实现一个可视化编辑器。
我认为 v2 是最常见的tiptap,但在某些情况下必须使用 v1。
但是,当我将纯文本粘贴到tiptap中时,我对这个行为并不满意,当我查看它时,我发现库中的prosemimirror中设置的条件与我的预期不同。
https://github.com/ProseMirror/prosemirror-view/blob/master/src/clipboard.js#L57-L59
text.trim().split(/(?:\r\n?|\n)+/).forEach(block => {
dom.appendChild(document.createElement("p")).appendChild(serializer.serializeNode(schema.text(block, marks)))
})
似乎 prosemiror 将单个换行符转换为<p></p>
. 我想更改条件,以便它转换为<br>
是否有一个换行符,以及<p></p>
是否有两个换行符。但我不知道如何做到这一点,而且我很难过。
editorProps: {
clipboardTextParser(text, $context) {
console.log(text)
console.log($context)
// :(
}
}
我首先使用tiptap 的EditorProps
功能覆盖prosemirror 的整个处理过程clipboardTextParser
。但是,clipboardTextParser
prosemiror 中使用了许多变量和对象,我不知道如何在 editorProps 中编写它们。我放弃了,因为我不知道如何继续。
有没有办法解决这个问题?我在想,如果tiptap 可以做几乎相同的事情clipboardTextParser
,那应该没问题。
请原谅我蹩脚的英语。请帮我!