diff --git a/packages/text/src/markdown/compare.ts b/packages/text/src/markdown/compare.ts index ea269499fd4..c2f8b5f87e8 100644 --- a/packages/text/src/markdown/compare.ts +++ b/packages/text/src/markdown/compare.ts @@ -34,13 +34,20 @@ export function calcSørensenDiceCoefficient (a: string, b: string): number { * Perform markdown diff/comparison to understand do we have a major differences. */ export function isMarkdownsEquals (source1: string, source2: string): boolean { - const lines1 = source1 - .split('\n') - .map((it) => it.trimEnd()) - .join('\n') - const lines2 = source2 - .split('\n') - .map((it) => it.trimEnd()) - .join('\n') + const normalizeLineEndings = (str: string) => + str.replace(/\r?\n/g, '\n'); + + const excludeBlankLines = (str: string) => + str.split('\n') + .map((it) => it.trimEnd()) + .filter(it => it.length > 0) + .join('\n') + + const norm1 = normalizeLineEndings(source1) + const lines1 = excludeBlankLines(norm1) + + const norm2 = normalizeLineEndings(source2) + const lines2 = excludeBlankLines(norm2) + return lines1 === lines2 }