tiptap: just return text for list node

This commit is contained in:
fantasticit 2022-06-21 21:31:44 +08:00
parent a9f3de8ff0
commit de824badee
1 changed files with 25 additions and 17 deletions

View File

@ -67,28 +67,36 @@ export const Clipboard = Extension.create<IClipboardOptions>({
const json = slice.content.toJSON(); const json = slice.content.toJSON();
const isSelectAll = slice.openStart === slice.openEnd && slice.openEnd === 0; const isSelectAll = slice.openStart === slice.openEnd && slice.openEnd === 0;
if (Array.isArray(json) && !isSelectAll) {
const type = json[0].type;
// 列表项返回文字内容
if (['bulletList', 'orderedList', 'taskList'].includes(type)) {
return slice.content.textBetween(0, slice.content.size, '\n\n');
}
}
if (typeof json === 'object' || isSelectAll) { if (typeof json === 'object' || isSelectAll) {
return extensionThis.options.prosemirrorToMarkdown({ return extensionThis.options.prosemirrorToMarkdown({
content: slice.content, content: slice.content,
}); });
} else {
const isText = isPureText(json) && !isSelectAll;
if (isText) {
return slice.content.textBetween(0, slice.content.size, '\n\n');
}
const doc = slice.content;
if (!doc) {
return '';
}
const content = extensionThis.options.prosemirrorToMarkdown({
content: doc,
});
return content;
} }
const isText = isPureText(json) && !isSelectAll;
if (isText) {
return slice.content.textBetween(0, slice.content.size, '\n\n');
}
const doc = slice.content;
if (!doc) {
return '';
}
const content = extensionThis.options.prosemirrorToMarkdown({
content: doc,
});
return content;
}, },
}, },
}), }),