Slack 网络钩子 html table
Slack webhook html table
我有一个 HTML table,我正在尝试通过 webhook post 到 Slack。
有没有办法 post HTML table 到 Slack?
这里是 HTML 代码:
<!DOCTYPE html>
<html>
<head>
<title>HTML Tables</title>
</head>
<body>
<table border="1">
<tr>
<td>Row 1, Column 1</td>
<td>Row 1, Column 2</td>
</tr>
<tr>
<td>Row 2, Column 1</td>
<td>Row 2, Column 2</td>
</tr>
</table>
</body>
</html>
不,我认为没有任何方法可以在 Slack 消息中绘制 table。
以下是用于格式化 Slack 消息的其他可用选项:https://api.slack.com/docs/formatting。
我已经打开了 Slack 支持的票证,询问 Slack 的 Incoming Webhook 消息是否支持任何形式的 table(HTML 或 Markdown)。
官方回答是Slack消息不支持tables。
他们建议生成 table 和 post 作为图像。
他们还说他们会把它添加到他们的积压工作中。
不是 html table,但您可以使用 console.table 之类的包将 table 的数据打印到字符串变量中。然后使用 triple backticks
在您的 slack 消息的文本字段中添加您的 table。例如:
const cTable = require('console.table');
const table = cTable.getTable([
{
name: 'foo',
age: 10
}, {
name: 'bar',
age: 20
}
]);
然后作为您的 slack 消息附件的一部分:
const attachmentList = {
"title": "YOUR TITLE",
"text": 'HERE IS YOUR TABLE: : \n ```'+table+'```',
}
您现在可以使用 "fields" layout block 在 slack 中执行简单的两列 tables。
你可以做两列table:
[
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Name*"
},
{
"type": "mrkdwn",
"text": "*Email*"
},
{
"type": "plain_text",
"text": "Jeff Henderson",
"emoji": true
},
{
"type": "mrkdwn",
"text": "jh@geemail.com"
},
{
"type": "plain_text",
"text": "Anne Polin",
"emoji": true
},
{
"type": "mrkdwn",
"text": "ap@geemail.com"
}
]
}
]
给你:
或者去现场风格:
[
{
"type": "section",
"fields": [
{
"type": "plain_text",
"text": "Name",
"emoji": true
},
{
"type": "mrkdwn",
"text": "*Jeff Henderson*"
},
{
"type": "plain_text",
"text": "Email",
"emoji": true
},
{
"type": "mrkdwn",
"text": "jh@geemail.com"
},
{
"type": "plain_text",
"text": "Mobile Phone",
"emoji": true
},
{
"type": "mrkdwn",
"text": "0451000000"
},
{
"type": "plain_text",
"text": "Work Phone",
"emoji": true
},
{
"type": "mrkdwn",
"text": "94550000"
}
]
}
]
将产生:
Slack API 将块限制为只有 10 个元素,但您可以做的是添加一个带有中断的长文本,使其看起来像 table。这是一个例子
[
{
"type": "section",
"text": {
"text": "Conference Standings:",
"type": "mrkdwn"
},
"fields": [
{
"type": "mrkdwn",
"text": "*Team*"
},
{
"type": "mrkdwn",
"text": "*W-L*"
},
{
"type": "plain_text",
"text": "Team1\nTeam2\nTeam3\nTeam4\nTeam5\n"
},
{
"type": "plain_text",
"text": "1\n2\n3\n4\n5\n"
}
]
}
]
这是结果
我开始在我的 slackbot 中使用旧式控制台应用程序表。
查看示例:https://github.com/Robert-McGinley/TableParser
只需将 ``` 3 个刻度线内的原始文本发送到 SlackAPI
不幸的是,表格似乎是 Slack 目前不支持的 Markdown 标准。
一个粗略的解决方法是在文字文本块中使用 box-drawing characters(在单独的行上前后加上三个 backticks/inverted 逗号,即```)。
我偶尔会使用 tablesgenerator.com 即时生成它们。
╔══════╤══════╤══════════╗
║ Dog │ Cat │ Bird ║
╠══════╪══════╪══════════╣
║ Woof │ Meow │ Tweet ║
╟──────┼──────┼──────────╢
║ Fur │ Fur │ Feathers ║
╚══════╧══════╧══════════╝
它们当然不漂亮,但与 Slack 显然推荐的粘贴图像不同,它们的内容可以搜索,并且至少对于我的一些同事来说,可以在一定程度上使用辅助技术。
这是此处给出的不同答案的混合体。我也只能建议发送格式化字符串,因为它支持多于两列。
然而,问题是 Slack 并没有像代码通常那样给每个字符等量的 space。这意味着行不会正确对齐。因此,我建议使用需要标记 (```) 的代码块。
Python 使用格式化字符串的示例:
monthly_numbers_str = f"```"
monthly_numbers_str += f"{"Month".ljust(7)}{"Users".ljust(7)}\n"
monthly_numbers_str += f"{"Jan".ljust(7)}{"15".ljust(7)}\n"
monthly_numbers_str += f"{"Feb".ljust(7)}{"19".ljust(7)}\n"
monthly_numbers_str += f"{"Mar".ljust(7)}{"30".ljust(7)}\n"
monthly_numbers_str += f"```"
输出(如代码):
Month Users
Jan 15
Feb 19
Mar 30
我有一个 HTML table,我正在尝试通过 webhook post 到 Slack。
有没有办法 post HTML table 到 Slack?
这里是 HTML 代码:
<!DOCTYPE html>
<html>
<head>
<title>HTML Tables</title>
</head>
<body>
<table border="1">
<tr>
<td>Row 1, Column 1</td>
<td>Row 1, Column 2</td>
</tr>
<tr>
<td>Row 2, Column 1</td>
<td>Row 2, Column 2</td>
</tr>
</table>
</body>
</html>
不,我认为没有任何方法可以在 Slack 消息中绘制 table。
以下是用于格式化 Slack 消息的其他可用选项:https://api.slack.com/docs/formatting。
我已经打开了 Slack 支持的票证,询问 Slack 的 Incoming Webhook 消息是否支持任何形式的 table(HTML 或 Markdown)。
官方回答是Slack消息不支持tables。
他们建议生成 table 和 post 作为图像。
他们还说他们会把它添加到他们的积压工作中。
不是 html table,但您可以使用 console.table 之类的包将 table 的数据打印到字符串变量中。然后使用 triple backticks
在您的 slack 消息的文本字段中添加您的 table。例如:
const cTable = require('console.table');
const table = cTable.getTable([
{
name: 'foo',
age: 10
}, {
name: 'bar',
age: 20
}
]);
然后作为您的 slack 消息附件的一部分:
const attachmentList = {
"title": "YOUR TITLE",
"text": 'HERE IS YOUR TABLE: : \n ```'+table+'```',
}
您现在可以使用 "fields" layout block 在 slack 中执行简单的两列 tables。
你可以做两列table:
[
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Name*"
},
{
"type": "mrkdwn",
"text": "*Email*"
},
{
"type": "plain_text",
"text": "Jeff Henderson",
"emoji": true
},
{
"type": "mrkdwn",
"text": "jh@geemail.com"
},
{
"type": "plain_text",
"text": "Anne Polin",
"emoji": true
},
{
"type": "mrkdwn",
"text": "ap@geemail.com"
}
]
}
]
给你:
或者去现场风格:
[
{
"type": "section",
"fields": [
{
"type": "plain_text",
"text": "Name",
"emoji": true
},
{
"type": "mrkdwn",
"text": "*Jeff Henderson*"
},
{
"type": "plain_text",
"text": "Email",
"emoji": true
},
{
"type": "mrkdwn",
"text": "jh@geemail.com"
},
{
"type": "plain_text",
"text": "Mobile Phone",
"emoji": true
},
{
"type": "mrkdwn",
"text": "0451000000"
},
{
"type": "plain_text",
"text": "Work Phone",
"emoji": true
},
{
"type": "mrkdwn",
"text": "94550000"
}
]
}
]
将产生:
Slack API 将块限制为只有 10 个元素,但您可以做的是添加一个带有中断的长文本,使其看起来像 table。这是一个例子
[
{
"type": "section",
"text": {
"text": "Conference Standings:",
"type": "mrkdwn"
},
"fields": [
{
"type": "mrkdwn",
"text": "*Team*"
},
{
"type": "mrkdwn",
"text": "*W-L*"
},
{
"type": "plain_text",
"text": "Team1\nTeam2\nTeam3\nTeam4\nTeam5\n"
},
{
"type": "plain_text",
"text": "1\n2\n3\n4\n5\n"
}
]
}
]
这是结果
我开始在我的 slackbot 中使用旧式控制台应用程序表。
查看示例:https://github.com/Robert-McGinley/TableParser
只需将 ``` 3 个刻度线内的原始文本发送到 SlackAPI
不幸的是,表格似乎是 Slack 目前不支持的 Markdown 标准。
一个粗略的解决方法是在文字文本块中使用 box-drawing characters(在单独的行上前后加上三个 backticks/inverted 逗号,即```)。
我偶尔会使用 tablesgenerator.com 即时生成它们。
╔══════╤══════╤══════════╗
║ Dog │ Cat │ Bird ║
╠══════╪══════╪══════════╣
║ Woof │ Meow │ Tweet ║
╟──────┼──────┼──────────╢
║ Fur │ Fur │ Feathers ║
╚══════╧══════╧══════════╝
它们当然不漂亮,但与 Slack 显然推荐的粘贴图像不同,它们的内容可以搜索,并且至少对于我的一些同事来说,可以在一定程度上使用辅助技术。
这是此处给出的不同答案的混合体。我也只能建议发送格式化字符串,因为它支持多于两列。
然而,问题是 Slack 并没有像代码通常那样给每个字符等量的 space。这意味着行不会正确对齐。因此,我建议使用需要标记 (```) 的代码块。
Python 使用格式化字符串的示例:
monthly_numbers_str = f"```"
monthly_numbers_str += f"{"Month".ljust(7)}{"Users".ljust(7)}\n"
monthly_numbers_str += f"{"Jan".ljust(7)}{"15".ljust(7)}\n"
monthly_numbers_str += f"{"Feb".ljust(7)}{"19".ljust(7)}\n"
monthly_numbers_str += f"{"Mar".ljust(7)}{"30".ljust(7)}\n"
monthly_numbers_str += f"```"
输出(如代码):
Month Users
Jan 15
Feb 19
Mar 30