Make parse.richTextToString more efficient (#848)

This commit is contained in:
Marshall Polaris 2022-09-12 16:11:03 -07:00 committed by GitHub
parent 22d2248951
commit cb143117e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 3 deletions

View File

@ -13,6 +13,7 @@
"@tiptap/extension-link": "2.0.0-beta.43", "@tiptap/extension-link": "2.0.0-beta.43",
"@tiptap/extension-mention": "2.0.0-beta.102", "@tiptap/extension-mention": "2.0.0-beta.102",
"@tiptap/starter-kit": "2.0.0-beta.191", "@tiptap/starter-kit": "2.0.0-beta.191",
"prosemirror-model": "1.18.1",
"lodash": "4.17.21" "lodash": "4.17.21"
}, },
"devDependencies": { "devDependencies": {

View File

@ -1,5 +1,12 @@
import { MAX_TAG_LENGTH } from '../contract' import { MAX_TAG_LENGTH } from '../contract'
import { generateText, JSONContent } from '@tiptap/core' import {
getText,
getTextSerializersFromSchema,
getSchema,
JSONContent,
} from '@tiptap/core'
import { Node as ProseMirrorNode } from 'prosemirror-model'
// Tiptap starter extensions // Tiptap starter extensions
import { Blockquote } from '@tiptap/extension-blockquote' import { Blockquote } from '@tiptap/extension-blockquote'
import { Bold } from '@tiptap/extension-bold' import { Bold } from '@tiptap/extension-bold'
@ -97,7 +104,6 @@ export const exhibitExts = [
Paragraph, Paragraph,
Strike, Strike,
Text, Text,
Image, Image,
Link, Link,
Mention, Mention,
@ -105,6 +111,15 @@ export const exhibitExts = [
TiptapTweet, TiptapTweet,
] ]
const exhibitSchema = getSchema(exhibitExts)
export function richTextToString(text?: JSONContent) { export function richTextToString(text?: JSONContent) {
return !text ? '' : generateText(text, exhibitExts) if (!text) {
return ''
}
const contentNode = ProseMirrorNode.fromJSON(exhibitSchema, text)
return getText(contentNode, {
blockSeparator: '\n\n',
textSerializers: getTextSerializersFromSchema(exhibitSchema),
})
} }