diff --git a/src/lib/components/Editor.svelte b/src/lib/components/Editor.svelte index 0629e80..fbd58f8 100644 --- a/src/lib/components/Editor.svelte +++ b/src/lib/components/Editor.svelte @@ -3280,6 +3280,11 @@ src = src.replace(/^([\s>]*)-\s\[ \][^\S\n]+(.+)$/gm, '$1- $2'); src = src.replace(/^([\s>]*)-\s\[ \][^\S\n]*$/gm, '$1-  '); + // Pre-process: strip list-separator comments before markdown-it. + // markdown-it treats as an HTML block start, swallowing the + // next line (e.g. an image) as raw HTML instead of parsing it. + src = src.replace(//g, '\n'); + // Pre-process: preserve blank lines before image-only lines // markdown-it collapses blank lines into paragraph breaks, losing the empty paragraph. // Insert a
marker that markdown-it passes through (html: true), then convert to

@@ -3331,7 +3336,7 @@ if (pendingContent !== null) { createEditor(pendingContent); pendingContent = null; - } else if (isMobile) { + } else if (isMobile && !lastSourceMode) { createEditor(''); } } @@ -3392,7 +3397,12 @@ function createEditor(content: string) { if (!editorElement) return; - destroyEditor(); + if (editor) { + editor.destroy(); + editor = null; + } + mathObserver?.disconnect(); + mathObserver = null; isLargeDoc = content.length > LARGE_DOC_CHARS; const html = markdownToHtml(content);