只有当内容是程序真实运行后用户在终端、控制台或devtools中原样看到的输出字符串时,才必须用而非或;它是语义开关,非样式工具,误用会损害可访问性和seo。

什么时候必须用 ,而不是 或 <pre class="brush:php;toolbar:false;">
只有当内容是程序**真实运行后用户在终端、控制台或 DevTools 中原样看到的输出字符串**时, 才合法。它不是“看起来像输出”的样式工具,而是语义开关。
Error: Cannot read property 'x' of null ✅ —— 浏览器控制台里真打印出来的那一行-
npm install后的added 42 packages in 3.1s✅ —— 终端回显,非命令本身 -
{"id":1,"name":"Alice"}❌ —— 这是 API 响应体,属于数据载体,该用+ class="json"或 -
git status命令本身 ❌ —— 那是用户输入,该用 git status
误用最直接的后果:屏幕阅读器把错误信息读作“代码片段”,而非“程序输出”,可访问性降级;搜索引擎也可能错判文档意图。
多行输出必须套 ,否则换行全丢
是内联元素,浏览器默认会折叠所有空白符(包括换行和多个空格)。写成 Line1\nLine2\nLine3,实际渲染就是 Line1 Line2 Line3(中间仅一个空格)。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 正确写法:
<samp>Traceback (most recent call last):\n File "main.py", line 5, in <module>\n print(x)\nNameError: name 'x' is not defined</module></samp>
- 不要用多个 拼接:Line1Line2 —— 语义断裂,样式难统一,且无法保留缩进
- 旧版 Safari 对
<samp> 的字体继承不可靠,建议显式加 <code>style="font-family: ui-monospace, monospace;"</code></samp>
不是变量高亮,而是占位符语义标记
表示“这里是个你要替换的值”,只出现在说明性上下文中,比如 CLI 帮助、HTTP 示例、文档参数说明。它不参与运行逻辑,也不该出现在可执行代码里。
- 正确:
curl -X GET https://api.example.com/users/<var>user-id</var>—— user-id 提示读者填真实 ID - 错误:
let <var>count</var> = 0;—— JS 变量声明,应全用包裹,或用 CSS 高亮
- 错误:"hello" —— 字面量无替换上下文,语义模糊;若用于示意请求体,应写成
-d '<var>{"key":"value"}</var>' - 默认无斜体,但语义要求它视觉上可区分;若项目禁用斜体,需显式设
font-style: italic,不能只靠 class 模拟
嵌套规则与转义陷阱
和 都不自动转义 HTML 字符。把未处理的原始响应塞进去,可能直接触发 XSS;把含 的错误信息直接放进去,浏览器会解析标签,导致 DOM 异常。
- 服务端返回的错误字符串含
<div>Internal Error</div>,必须先转义为<div>Internal Error</div>,再放进 - 允许嵌套 、、 等短语级标签,但禁止 、
、
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










