机器人

Telegram 机器人如何使用富文本格式:标题、原生表格、LaTeX 数学公式、剧透与 Bot API 7.x 实体

本文介绍 Telegram 机器人消息可用的富文本格式,包括标题、表格、折叠引用、代码块与公式,并给出在窄屏手机上设计消息结构的实用建议,帮助你判断何时该用结构、何时该克制。

内容导读

本文介绍 Telegram 机器人消息可用的富文本格式,包括标题、表格、折叠引用、代码块与公式,并给出在窄屏手机上设计消息结构的实用建议,帮助你判断何时该用结构、何时该克制。

Telegram 机器人如何使用富文本格式:标题、原生表格、LaTeX 数学公式、剧透与 Bot API 7.x 实体主题插画

机器人发送的消息可以承载比人们通常以为的更多结构——标题、表格、可以折叠收起的引用、代码、公式。这一切都能在普通的聊天气泡中渲染出来,无需附件,也无需点开任何东西。

这就引出一个与能力无关的问题:聊天中的一条消息在不再算作消息之前,究竟能承载多少结构。

你将能够做到

  • 了解机器人能在气泡里放什么。
  • 选择在手机上真正有帮助的结构。
  • 用折叠引用收纳冗长的部分。
  • 说清楚哪些内容在转发后仍然保留。

这里的一切仍然只是聊天中的一条消息,而这正是值得在设计时加以应对的约束。

气泡很窄,而且永远如此

机器人输出中大多数格式错误,都源于在宽屏上编写、在窄屏上阅读。一张五列的表格在编辑器里清晰可读,到了手机上就变成一堆换行后的碎片,而几乎所有内容都是在手机上读的。

有用的做法是把宽度视为固定且很短。两到三列,值要短到不会换行,标题只用一个词。任何不符合这一点的东西都不是表格的问题——它说明这个答案本该是一个文件、一个链接,或者几条消息。

长度也是同样的道理。一个气泡能装下很多东西,但读者装不下:一条占满两屏的消息,无论底下结构多好,都会被略读到第一行然后划过去。

折叠引用是其中最有用的一个 可折叠的区块让一条消息同时做到简短和完整——答案可见,日志、追踪记录或条款则藏在一次点击之后。它是唯一一种能让冗长输出变得更好、而不只是更整齐的结构。

机器人发送了一条格式良好的消息。有人转发了它。到达对方那里的是什么?

带着格式的消息,因为结构是消息本身的一部分

纯文本——转发时格式会被剥离

一个指回原消息的链接

格式会随之传递,因为它属于消息本身,而不是由所在聊天施加的。这一点从两方面都值得了解:一条结构良好的机器人回复在被人转给同事后依然有效,而任何你不希望以那种形式流传出去的内容,就根本不该出现在消息里。不会随之传递的是消息之外的东西——附在消息上的按钮通常就是牺牲品。

一张五列的表格在手机上会怎样?

它会在气泡内横向滚动

它会换行,变得难以阅读

它会被拒绝,并以纯文本发送

聊天气泡不是页面,宽度完全由手机决定。放不下的列会换行,对齐会崩塌,一张原本让对比一目了然的表格会变成对话中最难读的东西。如果数据确实需要五列,诚实的选项是减少行数、改用文件,或者链接到某个能妥善排版的地方。

什么时候代码块是普通文本的正确选择?

任何时候你想让它从其余内容中凸显出来

当确切的字符很重要、而且有人会复制它们时

从不——它只用于编程语言

代码块会原样保留空格和标点,并让读者无需手动选中就能复制内容。这使它适合参考编号、标识符、命令,以及任何错一个字符就会出问题的地方——无论它是不是代码。把它当作强调来用才是误用:它会让普通句子更难读,并暗示出文本并不具有的含义。

机器人的回复很长但结构良好。它应该以什么开头?

一个标明章节的标题

答案,一行,放在任何结构之前

对用户所问内容的总结

第一行是唯一保证会被读到的部分,而在聊天中,它也是出现在通知和聊天列表里的内容。它下面的结构能帮助继续读下去的人;顶部的标题则把答案推迟了一行,还重复了读者已经知道的东西。复述问题更糟——它用用户自己提供的信息占满了那唯一重要的一行。

在发布之前,用手机读一读机器人的输出 不是在终端里,不是在预览工具里——而是在真实的聊天中,在真实的手机上。几乎所有在开发时看起来合理的格式决定,到了那里都会显得不同,而那是唯一算数的视角。

结构不等于清晰

有一种模式值得点明,因为出于好意的机器人经常掉进去:一条回复带着标题、项目符号、表格和引用,而这一切都用在两句话的内容上。格式让消息看起来经过深思熟虑,却让它读起来长了三倍。

一条有用的规则是:结构应当由内容赢得。确实有列表时才用项目符号。在相同属性之间做比较时才用表格。只有在不止一个章节时才用标题。用在任何更短的内容上,这一切都只是给一条本该写成一段话的消息做装饰。

克制也正是结构在出现时能起作用的原因。如果每条回复都带格式,就没有一条能凸显出来;如果格式只在内容确实有形状时出现,读者就会明白它意味着什么。

不要给你没写过的文本加格式 给引用消息的部分内容加粗,或者把用户自己的话重新组织成列表,都是在改变本属于别人的强调。格式化你的输出,让他们的输入保持原样。

格式化机器人输出

  1. 把答案放在第一行它是唯一保证会被读到的。
  2. 假定屏幕很窄最多两到三列。
  3. 把冗长部分折叠进引用同时做到简短和完整。
  4. 用代码块处理精确字符串不是用来强调。
  5. 让内容赢得结构项目符号需要有列表。
  6. 在手机上的真实聊天中检查它在别人看到之前。

← 返回 TG知识库