BRAND NEWS
{{ article.title }}
{{ article.publishedAt }} · {{ article.sourceName }}
BRAND NEWS
{{ article.publishedAt }} · {{ article.sourceName }}
BRAND NEWS
{{ article.publishedAt }} · {{ article.sourceName }}
{{ product.type === 'tool' ? 'TECH PRODUCT' : 'COURSE' }}
{{ product.subtitle }}
{{ product.type === 'tool' ? 'TECH PRODUCT' : 'COURSE' }}
{{ product.subtitle }}
OFFICIAL STATEMENT
{{ article.statementNo }}{{ article.publishedAt }}
{{ article.summary }}
{{ article.content }}
OFFICIAL STATEMENT
{{ article.statementNo }}{{ article.publishedAt }}
{{ article.summary }}
COMPANION TEAM
以专业、温暖和清晰的协作,为每一段成长提供支持。
{{ member.role }}
{{ member.summary }}
COMPANION TEAM
以专业、温暖和清晰的协作,为每一段成长提供支持。
{{ member.role }}
${escapeRichText(paragraph).replaceAll('\n', '
')}
重点正文
' + expect(sanitizeRichText(html)).toBe(html) + }) + + it('removes scripts, event handlers and unsafe links', () => { + const html = '正文危险链接
' + const cleaned = sanitizeRichText(html) + expect(cleaned).not.toContain('script') + expect(cleaned).not.toContain('onclick') + expect(cleaned).not.toContain('javascript:') + }) + + it('adds isolation attributes to new-window links', () => { + expect(sanitizeRichText('示例')) + .toContain('rel="noopener noreferrer"') + }) +})