From 110c861cd71264adab2002fff61bb81ccf5c93fc Mon Sep 17 00:00:00 2001 From: Bukowa Date: Tue, 9 Jul 2024 13:41:56 +0200 Subject: [PATCH 1/2] fix: frontmatter parsing in windows (CLRF) --- src/lib/converter/comments/parser.ts | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/lib/converter/comments/parser.ts b/src/lib/converter/comments/parser.ts index af65774ea..218a16ca2 100644 --- a/src/lib/converter/comments/parser.ts +++ b/src/lib/converter/comments/parser.ts @@ -203,12 +203,23 @@ export function parseCommentString( // Check for frontmatter let frontmatterData: Record = {}; const firstBlock = content[0]; - if (firstBlock.text.startsWith("---\n")) { - const end = firstBlock.text.indexOf("\n---\n"); + + let lineBreak: string; + switch (firstBlock.text.startsWith("---\r\n")) { + case true: + lineBreak = "\r\n"; + break; + case false: + lineBreak = "\n"; + break; + } + + if (firstBlock.text.startsWith(`---${lineBreak}`)) { + const end = firstBlock.text.indexOf(`${lineBreak}---${lineBreak}`); if (end !== -1) { - const yamlText = firstBlock.text.slice("---\n".length, end); + const yamlText = firstBlock.text.slice(`---${lineBreak}`.length, end); firstBlock.text = firstBlock.text - .slice(end + "\n---\n".length) + .slice(end + `${lineBreak}---${lineBreak}`.length) .trimStart(); const frontmatter = parseYamlDoc(yamlText, { prettyErrors: false }); @@ -216,7 +227,7 @@ export function parseCommentString( // Can't translate issues coming from external library... logger.warn( warning.message as TranslatedString, - warning.pos[0] + "---\n".length, + warning.pos[0] + `---${lineBreak}`.length, file, ); } @@ -224,7 +235,7 @@ export function parseCommentString( // Can't translate issues coming from external library... logger.error( error.message as TranslatedString, - error.pos[0] + "---\n".length, + error.pos[0] + `---${lineBreak}`.length, file, ); } From c7000c9ac164d70c568b434bccac1953f9ffba05 Mon Sep 17 00:00:00 2001 From: Bukowa Date: Tue, 9 Jul 2024 13:46:56 +0200 Subject: [PATCH 2/2] chore: lint --- src/lib/converter/comments/parser.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/converter/comments/parser.ts b/src/lib/converter/comments/parser.ts index 218a16ca2..e98917676 100644 --- a/src/lib/converter/comments/parser.ts +++ b/src/lib/converter/comments/parser.ts @@ -217,7 +217,10 @@ export function parseCommentString( if (firstBlock.text.startsWith(`---${lineBreak}`)) { const end = firstBlock.text.indexOf(`${lineBreak}---${lineBreak}`); if (end !== -1) { - const yamlText = firstBlock.text.slice(`---${lineBreak}`.length, end); + const yamlText = firstBlock.text.slice( + `---${lineBreak}`.length, + end, + ); firstBlock.text = firstBlock.text .slice(end + `${lineBreak}---${lineBreak}`.length) .trimStart();