fix: Token type hr not supported by Markdown parser (#8003)

This commit is contained in:
Shivam Mishra
2023-09-29 12:05:32 +05:30
committed by GitHub
parent fd633e1613
commit 5ee980465f
2 changed files with 51 additions and 3 deletions

View File

@@ -3,6 +3,7 @@ import {
MessageMarkdownTransformer,
MessageMarkdownSerializer,
} from '@chatwoot/prosemirror-schema';
import * as Sentry from '@sentry/browser';
/**
* The delimiter used to separate the signature from the rest of the body.
@@ -14,9 +15,25 @@ export const SIGNATURE_DELIMITER = '--';
* Parse and Serialize the markdown text to remove any extra spaces or new lines
*/
export function cleanSignature(signature) {
// convert from markdown to common mark format
const nodes = new MessageMarkdownTransformer(messageSchema).parse(signature);
return MessageMarkdownSerializer.serialize(nodes);
try {
// remove any horizontal rule tokens
signature = signature
.replace(/^( *\* *){3,} *$/gm, '')
.replace(/^( *- *){3,} *$/gm, '')
.replace(/^( *_ *){3,} *$/gm, '');
const nodes = new MessageMarkdownTransformer(messageSchema).parse(
signature
);
return MessageMarkdownSerializer.serialize(nodes);
} catch (e) {
// eslint-disable-next-line no-console
console.warn(e);
Sentry.captureException(e);
// The parser can break on some cases
// for example, Token type `hr` not supported by Markdown parser
return signature;
}
}
/**