【问题标题】:Does Slack support Markdown tables?Slack 是否支持 Markdown 表?
【发布时间】:2019-09-12 22:35:06
【问题描述】:

我想使用其postMessage API 向 Slack 发送一个 Markdown 表,但我在 Slack 中获得了原始内容,而不是渲染表。 Slack 是否支持 Markdown 表?有没有其他方法可以在 Slack 中显示表格数据?我知道 Slack 不支持 HTML。

我尝试了chat.postMessagefiles.upload,也用固定列长格式化文本,但它看起来有点难看,所以我正在想办法让它看起来更好。

这是我的 HTTP 请求代码,内容类型是 JSON:

url : https://slack.com/api/chat.postMessage
body :
{
    "channel": "RKAID4I",
    "text": " | Tables  | Are   | Cool  |
|---------- |:-------------:    |------:    |
| col 1 is  | left-aligned  | $1600     |
| col 2 is  | centered  | $12   |
| col 3 is  | right-aligned     | $1    |"

}

我期待像表格一样的格式,但实际输出与我发送的完全一样。是因为我的 Markdown 消息错误还是 Slack 根本不支持 Markdown 表?

【问题讨论】:

  • 请注意,Slack’s markup language 被称为 mrkdown(缺少“a”)。
  • 而是称为mrkdwn(缺少“a”和“o”)。
  • 为此,我使用 acii tables 放置在 slack 的代码块中

标签: markdown slack-api


【解决方案1】:

不,事实上,Slack 根本不支持消息中的 Markdown¹。它使用its own similar-at-a-glance format called mrkdwn,与 Markdown 有一些显着差异:

  • 在 Markdown 中,*_ 都用于强调
  • 在 Markdown 中,**__ 都用于 bold
  • mrkdwn * 用于粗体_ 用于强调
  • Markdown has no syntax for strikethrough(虽然有些实现已经添加了它,例如在 GFM which uses ~~ 中)但 mrkdwn 使用 ~ 删除线
  • 链接语法非常不同
  • mrkdwn 不支持标题
  • 可能更多

不要指望任意 Markdown² 在 Slack 消息中起作用。


¹Slack 确实支持在帖子中使用 Markdown,可以使用 files.upload API endpoint 设置 filetypepost 来创建。

²请注意,常规 Markdown 也不支持表格。像删除线一样,一些实现已经添加了这些。

【讨论】:

    【解决方案2】:

    Slack 不支持表格的呈现,因此此标记将不起作用。

    你有两种选择:

    • 您可以使用字段,在大多数情况下将呈现为 2 列 设备。请参阅layout blocks 中的fields
    • 您可以将表格转换为图像(在 Slack 之外)和
      将图片附加到您的消息中。

    【讨论】:

    • 您还可以将 Markdown 表粘贴到 GitHub gist(带有 .md 文件扩展名)中,并在 Slack 中指向该 URL。 Markdown 表的格式很好。不幸的是,Slack 不会提供任何预览,只有裸链接。
    • 如果结果没有在 Slack 中显示我认为它对 OP 没有太大的价值。
    • 为了完整起见,您应该知道在 Slack 消息中使用图像/屏幕截图会使那些依赖屏幕阅读器技术的人(例如盲人或视力受损用户)无法阅读。在使用屏幕截图之前,请务必尝试其他更易于访问的方法,除非您知道所有当前和未来的收件人都能够查看该图像。
    猜你喜欢
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 2011-05-09
    • 2013-10-29
    • 1970-01-01
    相关资源
    最近更新 更多