用途:当项目使用 Kita(KitaJS、@kitajs/html)时,按 Kita 方式编写和编辑 .tsx/.jsx,而不是 React 代码。识别信号包括 jsxImportSource: "@kitajs/html"、@kitajs/html、@kitajs/ts-html-plugin、reply.html()/res.html()、JSX 中的 safe 属性。
主要能力与规则:Kita Html JSX 是服务端字符串模板运行时,JSX.Element 为 string | Promise<string>,不存在虚拟 DOM、客户端 hooks、hydration、合成事件或 React 转义行为。子元素默认不转义,需在包裹不可信文本的最近原生元素上加 safe;组件子元素用 escapeHtml(...)、Html.escapeHtml(...) 或 e...` 显式转义。类名优先用 class(className 也可接受),条件类用数组而非对象映射。异步组件返回 Promise<string>;Suspense 需提供与请求绑定的稳定 rid。
使用方式:按框架选择适配器——Fastify 用 @kitajs/fastify-html-plugin 与 reply.html(...);Express 用 @kitajs/express-html-plugin 与 res.html(...);Elysia 用 @elysiajs/html。设置需包含 jsx: "react-jsx"、jsxImportSource: "@kitajs/html"、plugins: [{ "name": "@kitajs/ts-html-plugin" }]。测试或 CI 建议 "test": "xss-scan && vitest",改动后运行 pnpm xss-scan。
适用场景:服务端 HTML 渲染、流式输出、框架路由集成。
限制与注意:safe 放在宽泛包裹层可能导致嵌套 JSX 双重转义;Suspense 是流式 HTML 替换而非 React 客户端 Suspense;ErrorBoundary 捕获异步失败而非普通同步渲染错误。更多细节见 https://html.kitajs.org/llms.txt 与 https://html.kitajs.org/llms-full.txt。