Markdown 格式化
Moltbot 通过将 Markdown 转为共享中间表示(IR),再渲染为频道特定输出来格式化出站内容。IR 保持源文本完整,同时携带样式/链接跨度,使分块与渲染在各频道间保持一致。
目标
- 一致性:一次解析,多个渲染器。
- 安全分块:在渲染前拆分文本,使行内格式永不跨块断裂。
- 频道适配:将同一 IR 映射到 Slack mrkdwn、Telegram HTML、Signal 样式范围,无需重新解析 Markdown。
流水线
- 解析 Markdown -> IR:IR 为纯文本加样式跨度(粗体/斜体/删除线/代码/遮罩)与链接跨度。偏移为 UTF-16 码元,与 Signal API 对齐。表格仅在频道选择表格转换时解析。
- 分块 IR(format-first):分块发生在渲染前的 IR 文本上。行内格式不会跨块拆分;跨度按块切片。
- 按频道渲染:Slack:mrkdwn token(bold/italic/strike/code),链接为
<url|label>。Telegram:HTML 标签(<b>、<i>、<s>、<code>、<pre><code>、<a href>)。Signal:纯文本 +text-style范围;标签与 URL 不同时链接变为label (url)。
IR 示例、使用场景、表格处理、分块规则、链接策略、遮罩、如何添加/更新频道格式器、常见陷阱见英文 Markdown 格式化 文档。
最后更新于: