docs(契约): 补两条口径 —— 非 chat 模式(单卡正文)与 br 不分隔的位置
- 非 chat 模式(工作/代码/文档/首页/视觉/语音/智能体/设置):br 是真换行、 不切分;行内白名单照常出样式;白名单外逐字原样;不许出现字面标签。 各模式既有较强排版约定优先(工作模式按行切清单、代码模式 pre 块) - br 只在普通文本层分隔:角色注记内部与白名单行内元素(尤其 code)内部 都不分隔 —— 前者会把注记正文漏成聊天气泡,后者会破坏成对元素平衡、 触发整段降级反而露出裸标签
This commit is contained in:
1 parent
f01fd7db20
commit
da1d23dd23
1 file changed
+2
@@ -1501,6 +1501,8 @@ curl -s -X POST -H "X-API-Key: $KEY" \
|
||||
- **空气泡照旧丢弃**(与既有 `<p>` 空气泡口径一致);`<br>` 两侧都是空白 ⇒ 不产生多余空气泡。
|
||||
- ⚠️ **影响面(各端须知)**:一条含 `<br>` 的回复在 IM 上会变成**多条消息**(与 `<p>` 一样受既有的气泡间隔节流约束)。
|
||||
- ⚠️ **实现状态**:本条发出时**实现跟进中**(Web 侧 `2dae469` 当时把 `<br>` 当行内换行,正在改;IM 出站侧当时连行内标签都还没剥,正在改)。**以本契约为准,不以当日实现为准。**
|
||||
- **🆕 非 chat 模式(单卡正文)的口径(同日追加)**:工作 / 代码 / 文档 / 首页 / 视觉 / 语音 / 智能体 / 设置 等**单卡正文**界面**不是气泡模型** ⇒ 那些模式里:**`<br>` ⇒ 一个真换行(不切分)**、**行内白名单照常出样式**、白名单外仍逐字原样。⚠️ **这些模式里也不许出现字面标签**。各模式**既有的较强排版约定优先**(例:工作模式的按行切清单、代码模式的 `<pre>` 等宽块 —— 通用规则不得覆盖它们)。
|
||||
- **🔴 `<br>` 在哪**不**分隔(同日追加,跨端口径)**:`<br>` **只在「普通文本层」分隔**。以下两种位置**不分隔**:① **角色注记内部**(`<action>` / `<narration>` 里)—— 否则注记正文会被切成聊天气泡、把本该隐藏的旁白发给对方;② **白名单行内元素内部**(尤其 `<code>`)—— 它是**成对**元素,从中间切开必然制造不平衡、触发「整段降级」,反而把裸标签露给用户。
|
||||
- **🔴 三条硬口径(各端必须照此实现,否则跨端显示不一致)**:
|
||||
1. **白名单外一律按纯文本原样显示** —— `<script>` 显示成字面量 `<script>`,**字符一个不丢**;
|
||||
2. **属性一律不解析** —— `<b class=x onclick=y>` 只取标签名,**属性不得变成任何 DOM/视图属性**;
|
||||
|
||||
Reference in new issue
Block a user