diff --git a/packages/baoyu-md/src/content.test.ts b/packages/baoyu-md/src/content.test.ts index 91dbd72..b076107 100644 --- a/packages/baoyu-md/src/content.test.ts +++ b/packages/baoyu-md/src/content.test.ts @@ -2,6 +2,7 @@ import assert from "node:assert/strict"; import test from "node:test"; import { + cleanSummaryText, extractSummaryFromBody, extractTitleFromMarkdown, parseFrontmatter, @@ -91,3 +92,19 @@ This is **the first paragraph** with [a link](https://example.com) and \`inline "This is the first paragraph with a link and inline code that should...", ); }); + +test("summary extraction normalizes raw HTML paragraphs to plain text", () => { + const summary = extractSummaryFromBody( + ` +# Heading +
2026年初,一只“龙虾”搅动了整个科技圈。腾讯楼下排起近千人长队,只为让工程师领取一份福利。
+`, + 120, + ); + + assert.equal( + summary, + "2026年初,一只“龙虾”搅动了整个科技圈。腾讯楼下排起近千人长队,只为让工程师领取一份福利。", + ); + assert.equal(cleanSummaryText("Good text!'"), "Good text!'"); +}); diff --git a/packages/baoyu-md/src/content.ts b/packages/baoyu-md/src/content.ts index 6be2b51..0bc73c5 100644 --- a/packages/baoyu-md/src/content.ts +++ b/packages/baoyu-md/src/content.ts @@ -46,6 +46,45 @@ export function stripWrappingQuotes(value: string): string { return value.trim(); } +const HTML_ENTITIES: Record