Port upstream 4844: keep soft line breaks on export via CSS#160
Open
Renakoni wants to merge 1 commit into
Open
Port upstream 4844: keep soft line breaks on export via CSS#160Renakoni wants to merge 1 commit into
Renakoni wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #143 β redoes the stale port from closed #66 against current main, matching the final upstream fix (marktext#4844, merged) exactly.
What changes
The editor shows a soft line break (a bare
\ninside a paragraph) as a line break because.mu-contentiswhite-space: pre-wrap, but HTML/PDF export collapsed it to a space β the two lines ran together.Instead of forcing marked to emit
<br>(which CommonMark reserves for hard breaks β the exported HTML would become non-conformant), the export keeps the conformant\nand renders it the way the editor does:white-space: pre-wrapon.markdown-body pand on tight list items (li:not(:has(> p))). Loose items are deliberately excluded β they wrap content in<p>(already covered), andli-level pre-wrap would expose marked's pretty-printing newline between</p>and</li>as a stray blank line.The Android export path flows through the same vendored file:
pdfExportHtml.tsβMarkdownToHtml.generate()β<article class="markdown-body">withexportStyle.cssinlined, so the one CSS rule covers both HTML and PDF export.Verification
softBreakExportHtml.spec.ts(ported from upstream): paragraph soft break stays a newline and never becomes<br>; tight-item soft break likewise; a real hard break (two trailing spaces) still renders<br>.node_modules/@muyajs/coreresynced.:has()loose-item exclusion) was verified in real Chromium upstream before marktext#4844 merged; the Android WebView shares the engine.