fix: preserve single line breaks, only collapse 2+ consecutive whitespace

Address review feedback: the previous \s+ regex was too aggressive and
broke text-only summaries with legitimate line breaks.

Now:
- Collapse runs of 2+ non-newline whitespace into a single space
- Collapse 3+ consecutive newlines into double newline (paragraph break)
- Single line breaks are preserved
This commit is contained in:
User 2026-02-23 04:39:14 +08:00
parent 2297ba8b4d
commit 7a3bfc50e7

View file

@ -232,8 +232,9 @@ export async function parseTextFromHtml(html: string): Promise<string> {
// Extract text from body to avoid any artifacts from the document wrapper
const text = (document?.querySelector('body')?.textContent || document?.textContent || '')
// Collapse multiple whitespace/newlines into single spaces
.replace(/\s+/g, ' ')
// Collapse runs of 2+ whitespace/newline characters, preserving single line breaks
.replace(/[^\S\n]{2,}/g, ' ')
.replace(/\n{3,}/g, '\n\n')
.trim();
return text;