From 59616fad077931e61529db8180258144a97afae2 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Wed, 16 Apr 2025 14:28:22 -0300 Subject: yaml: preserve line breaks through dividers ...when sorting YAML documents --- src/data/yaml.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/data/yaml.js b/src/data/yaml.js index 50317238..af1d5740 100644 --- a/src/data/yaml.js +++ b/src/data/yaml.js @@ -1781,14 +1781,16 @@ export function flattenThingLayoutToDocumentOrder(layout) { } export function* splitDocumentsInYAMLSourceText(sourceText) { - const dividerRegex = /^-{3,}\n?/gm; + // Not multiline! + const dividerRegex = /(?:\r\n|\n|^)-{3,}(?:\r\n|\n|$)/g; + let previousDivider = ''; while (true) { const {lastIndex} = dividerRegex; const match = dividerRegex.exec(sourceText); if (match) { - const nextDivider = match[0].trim(); + const nextDivider = match[0]; yield { previousDivider, @@ -1799,11 +1801,12 @@ export function* splitDocumentsInYAMLSourceText(sourceText) { previousDivider = nextDivider; } else { const nextDivider = ''; + const lineBreak = previousDivider.match(/\r?\n/)?.[0] ?? ''; yield { previousDivider, nextDivider, - text: sourceText.slice(lastIndex).replace(/(?