我有一个html表,我试图通过webhook发布。有没有办法发布html表松弛?下面是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>
答案 0 :(得分:33)
我已经打开了一张Slack支持的门票,询问Slack的Incoming Webhook消息是否支持任何形式的表格(HTML或Markdown)。
官方答案是 Slack消息不支持表格。
他们建议生成一个表并将其作为图像发布。
他们还表示他们会将其添加到他们的积压工作中。
答案 1 :(得分:27)
不,我不相信有任何方法可以在Slack消息中绘制表格。
以下是格式化Slack消息的其他可用选项:https://api.slack.com/docs/formatting。
答案 2 :(得分:12)
不是专门的html表,但您可以使用像console.table这样的包将表的数据打印到字符串变量中。然后使用triple backticks
将您的表添加到松弛消息的文本字段中。例如:
const cTable = require('console.table');
const table = cTable.getTable([
{
name: 'foo',
age: 10
}, {
name: 'bar',
age: 20
}
]);
然后作为松弛消息附件的一部分:
const attachmentList = {
"title": "YOUR TITLE",
"text": 'HERE IS YOUR TABLE: : \n ```'+table+'```',
}
答案 3 :(得分:6)
不幸的是,表似乎是Slack当前不支持的Markdown标准。
一种粗略的解决方法是在文字文本块中使用box-drawing characters(在文本行之前和后接三个反引号/反逗号,即“'',在单独的行中)。
我偶尔使用tablesgenerator.com即时生成它们。
╔══════╤══════╤══════════╗
║ Dog │ Cat │ Bird ║
╠══════╪══════╪══════════╣
║ Woof │ Meow │ Tweet ║
╟──────┼──────┼──────────╢
║ Fur │ Fur │ Feathers ║
╚══════╧══════╧══════════╝
它们肯定不是很漂亮,但是与Slack显然推荐的粘贴图像不同,可以搜索其内容,并且至少对于我的一些同事而言,它们在某种程度上与辅助技术一起工作。
答案 4 :(得分:3)
您现在可以使用“字段” layout block轻松地制作简单的两个列表。
您可以创建两列表格:
[
{
"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"
}
]
}
]
将产生产量:
答案 5 :(得分:3)
这是这里给出的不同答案的混合体。我也只能建议发送格式化的字符串,因为它支持多于两列。
但是,问题是Slack不能像代码通常那样给每个字符提供相等的空间。这意味着行将无法正确对齐。因此,我建议使用需要打勾(```)的代码块。
使用格式化字符串的Python示例:
let handleChange = (event) => {
const { value } = event.target;
setSearchState(searchState => ({
...searchState,
results: searchProducts(value),
query: value,
}));
};
输出(作为代码)
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"```"
答案 6 :(得分:0)
Slack API将块限制为最多10个元素,但是您可以做的是添加一个长文本并带有中断使其看起来像一张表。这是一个示例
[
{
"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"
}
]
}
]
这是结果
答案 7 :(得分:0)
我开始在slackbot中使用旧式的Console应用程序表。
在此处查看示例:https://github.com/Robert-McGinley/TableParser
只需将3号刻度内的原始文本发送到SlackAPI