应使用<code>而非<div>或<pre>包裹单行代码片段,因其行内、等宽、无障碍友好且兼容高亮库;<pre>仅用于需保留换行缩进的多行代码。

单元测试报告里代码片段显示错乱、语义丢失、屏幕阅读器读错,基本都是因为把 当容器用了——它只负责“这是代码”,不负责“怎么排版”。
单行断言或函数名必须用 ,不能套 <pre class="brush:php;toolbar:false;"></H3><p>测试报告中频繁出现的 <code>expect()</code>、<code>toBe()</code>、<code>userReducer</code> 这类内容,属于上下文明确的短标识符,<code> 是唯一合规选择。</p><ul><li><code>expect(state).toBe(null)</code> ✅ 正确:行内、等宽、无障碍友好</li><li><pre class='brush:php;toolbar:false;'>expect(state).toBe(null)</pre> ❌ 错误:<pre class="brush:php;toolbar:false;"> 是块级元素,会撑开段落行高,破坏报告紧凑性</li><li><code>if (x < 0) return true</code> ❌ 错误:含 < 字符未转义,浏览器解析中断,后续 DOM 可能塌陷</li><li>别给 <code> 加 <code>white-space: pre-wrap</code>:长断言会溢出容器且基线偏移,影响对齐</li></ul><H3>多行快照或错误堆栈必须用 <pre class='brush:php;toolbar:false;'> 组合</H3><p>Jest 的 <code>.snap</code> 文件内容、Vitest 报错时的堆栈追踪、React Testing Library 的 <code>debug()</code> 输出,都依赖原始缩进和换行——<code> 单独无法保留这些。</p><ul><li>正确结构:<pre class="brush:php;toolbar:false;"><code>exports[`Button renders correctly 1`] = `<button class="primary">Click</button>`;</pre><li>只用 <pre class="brush:php;toolbar:false;"> ❌:搜索引擎不识别为代码,CI 报告中无法被语法高亮插件捕获</li><li>只用 <code> ❌:所有换行变空格,<code><div><p>text</p></div></code> 渲染成一行,无法比对</li><li>缩进统一用 2 个空格(非 Tab):避免不同终端渲染宽度不一致导致错位</li></ul><H3>HTML 特殊字符必须手动转义,哪怕只是比较操作符</H3><p>测试断言里大量出现 <code>x < 5</code>、<code>type === 'LOAD_SUCCESS'</code>、<code>html & css</code> ——这些符号在 <code> 或 <pre class="brush:php;toolbar:false;"><code> 内部不转义,等于主动破坏 HTML 结构。</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/xiazai/skill5117" title="HTML Extract"><img
src="https://img.php.cn/upload/skill/000/000/081/179033952939354.jpg" alt="HTML Extract" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/xiazai/skill5117" title="HTML Extract">HTML Extract</a>
<p>使用 MinerU 从 HTML 页面和文件中提取内容,将 HTML 转换为保持标题、列表、表格及文本层次结构的干净、结构化 Markdown。F...</p>
</div>
<a href="/xiazai/skill5117" title="HTML Extract" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p><ul><li><code>x < 5 && y > 10</code> ✅ 安全写法</li><li><code>x < 5 && y > 10</code> ❌ 危险:浏览器尝试解析 <5 && y> 为标签,后续内容可能消失</li><li><code><div class="test"></code> ❌ 必须写成 <code><div class="test"></code></li><li>CI 环境中尤其敏感:某些静态站点生成器(如 Docusaurus)会在构建阶段直接报错退出</li></ul><H3>别指望 <code> 自动高亮,但必须为高亮库留好接口</H3><p><code> 标签本身不做语法分析,Prism.js 或 highlight.js 要靠 <code> 的 class 或父级 <pre class="brush:php;toolbar:false;"> 的 class 才能触发语言识别。</p><ul><li>推荐写法:<pre class='brush:js;toolbar:false;'>expect(add(2, 3)).toBe(5);</pre></li>
<li>漏掉 class ❌:高亮失效,纯黑底白字,可读性骤降</li>
<li>写成 <code class="js">... ❌:class 在 上无效,高亮库只认 <pre class="brush:php;toolbar:false;"> 或 <code> 的 language-* 类(取决于配置)</code></pre>
font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace,否则 macOS 和 Windows 渲染差异明显最常被忽略的是混用边界:有人把整个 Jest 配置对象塞进 ,有人把 <code>render() 单独包一层
。记住唯一判断标准——要不要保留原始换行和缩进。测试报告是机器可读优先的产物,格式错一点,CI 就可能误判失败。


















