This commit is contained in:
Timothy Jaeryang Baek
2025-10-05 23:29:48 -05:00
parent 08f8713ee1
commit 53de48d2b3
2 changed files with 54 additions and 31 deletions
+25 -17
View File
@@ -775,28 +775,36 @@
htmlValue = editor.getHTML();
jsonValue = editor.getJSON();
mdValue = turndownService
.turndown(
htmlValue
.replace(/<p><\/p>/g, '<br/>')
.replace(/ {2,}/g, (m) => m.replace(/ /g, '\u00a0'))
)
.replace(/\u00a0/g, ' ');
if (richText) {
onChange({
html: htmlValue,
json: jsonValue,
md: mdValue
});
mdValue = turndownService
.turndown(
htmlValue
.replace(/<p><\/p>/g, '<br/>')
.replace(/ {2,}/g, (m) => m.replace(/ /g, '\u00a0'))
)
.replace(/\u00a0/g, ' ');
} else {
// Plain text path: preserve \t and \n exactly
const doc = editor.view.state.doc;
const plain = doc.textBetween(0, doc.content.size, '\n\n', '\n'); // keeps \t intact
value = plain;
onChange({ html: null, json: null, md: plain });
mdValue = turndownService
.turndown(
htmlValue
// Replace empty paragraphs with line breaks
.replace(/<p><\/p>/g, '<br/>')
// Replace multiple spaces with non-breaking spaces
.replace(/ {2,}/g, (m) => m.replace(/ /g, '\u00a0'))
// Replace tabs with non-breaking spaces (preserve indentation)
.replace(/\t/g, '\u00a0\u00a0\u00a0\u00a0') // 1 tab = 4 spaces
)
// Convert non-breaking spaces back to regular spaces for markdown
.replace(/\u00a0/g, ' ');
}
onChange({
html: htmlValue,
json: jsonValue,
md: mdValue
});
if (json) {
value = jsonValue;
} else {