From 5b1097d7f9581fc0284f86ce5a5d2db6de81b6e2 Mon Sep 17 00:00:00 2001 From: Eduard Kuzmenko Date: Tue, 7 Mar 2023 22:21:57 +0400 Subject: [PATCH] Don't parse markdown inside of monospace --- src/lib/richTextProcessor/findConflictingEntity.ts | 6 +++--- src/lib/richTextProcessor/index.ts | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/richTextProcessor/findConflictingEntity.ts b/src/lib/richTextProcessor/findConflictingEntity.ts index 543c8ec1..24f1ab42 100644 --- a/src/lib/richTextProcessor/findConflictingEntity.ts +++ b/src/lib/richTextProcessor/findConflictingEntity.ts @@ -4,7 +4,7 @@ * https://github.com/morethanwords/tweb/blob/master/LICENSE */ -import {PASS_CONFLICTING_ENTITIES} from '.'; +import {MARKDOWN_ENTITIES_TYPES, PASS_CONFLICTING_ENTITIES} from '.'; import {MessageEntity} from '../../layer'; const SINGLE_ENTITIES: Set = new Set(['messageEntityPre', 'messageEntityCode']); @@ -16,12 +16,12 @@ export default function findConflictingEntity(currentEntities: MessageEntity[], singleEnd = currentEntity.offset + currentEntity.length; } - if(newEntity.offset < singleEnd && !PASS_CONFLICTING_ENTITIES.has(newEntity._)) { + if(newEntity.offset < singleEnd && MARKDOWN_ENTITIES_TYPES.has(newEntity._)) { return true; } const isConflictingTypes = newEntity._ === currentEntity._ || - (!PASS_CONFLICTING_ENTITIES.has(newEntity._) && !PASS_CONFLICTING_ENTITIES.has(currentEntity._)); + (!PASS_CONFLICTING_ENTITIES.has(newEntity._) && !PASS_CONFLICTING_ENTITIES.has(currentEntity._)); if(!isConflictingTypes) { return false; diff --git a/src/lib/richTextProcessor/index.ts b/src/lib/richTextProcessor/index.ts index 400f5bd9..34954a68 100644 --- a/src/lib/richTextProcessor/index.ts +++ b/src/lib/richTextProcessor/index.ts @@ -99,6 +99,8 @@ export const MARKDOWN_ENTITIES: {[markdown: string]: MessageEntity['_']} = { '||': 'messageEntitySpoiler' }; +export const MARKDOWN_ENTITIES_TYPES = new Set(Object.values(MARKDOWN_ENTITIES)); + export const PASS_CONFLICTING_ENTITIES: Set = new Set([ 'messageEntityEmoji', 'messageEntityLinebreak',