import assert from 'node:assert/strict'; import { readFile } from 'node:fs/promises'; import test from 'node:test'; import ts from 'typescript'; const source = await readFile(new URL('../src/utils/markdown.ts', import.meta.url), 'utf8'); const compiled = ts.transpileModule(source, { compilerOptions: { module: ts.ModuleKind.ESNext, target: ts.ScriptTarget.ES2020 } }).outputText; const { renderMarkdown } = await import(`data:text/javascript,${encodeURIComponent(compiled)}`); test('全网答案 Markdown 只渲染白名单标签并转义原始 HTML', () => { const html = renderMarkdown('### 标题\n**加粗** 和 *强调*,含 [官网](https://example.com)。\n\n- 一项\n- 二项\n\n> 引用\n\n`行内`\n\n```\n\n```'); assert.match(html, /
引用<\/blockquote>/); assert.match(html, /<script>alert\(1\)<\/script>/); assert.equal(renderMarkdown('普通文本'), '普通文本
'); assert.doesNotMatch(renderMarkdown('[危险](javascript:alert(1))'), /href=/); });