我究竟做错了什么?到目前为止,我的 Slack 应用程序中没有一个示例 Markdown 链接有效。
我在我的 Slack 应用程序的聊天中粘贴了下面的示例。我从 slack markdown syntax 获得了这个示例,它仍然将其视为 Slack 应用程序中的文字:
[like this](http://someurl)
所以我最终看到它而不是“像这样”作为 Slack 聊天中的链接。
或者上面的内容可能是错误的,在这种情况下,我的问题是你如何在 Slack 中明确创建链接?我想要一些我指定的可点击到特定 URL(超链接)的文本。
<http://someurl|like this>
与 github 不同。我认为你是对的,一些 Slack 示例曾经在其中存在这个错误,但是 github 语法不起作用。
Slack 使用自己的 Markdown 风格:
Slack Markdown 链接的工作方式如下:<http://someurl|like this>
注意:您只能通过 Slack API 执行此操作,而不仅仅是通过 Slack 客户端发送的简单消息。
https://i.stack.imgur.com/Bcpaj.png
Slack 目前不支持超链接;请参阅 this link,其中显示:
注意:不能在 Slack 消息中超链接单词。
更新:
Slack 终于在他们的聊天界面中添加了这个功能(source):
选择文本,然后单击格式工具栏中的链接图标 选择文本,然后在 Mac 上按 Cmd+Shift+U 或在 Windows/Linux 上按 Ctrl+Shift+U。复制您要共享的链接并将其粘贴到“链接”下的空白字段中,然后单击“保存”。
slack-api
。
Array
作为频道中的消息。请参阅此处的示例:api.slack.com/messaging/composing/formatting#linking-urls
Format messages with markup
以摆脱文本格式工具栏,这些都不起作用。
Slack 尚不支持直接消息,您只能使用 Slack API 执行此操作。但您可以投票给 the feature request I have submitted here。
截至今天,2020.02.14,在我加入的一个 Slack 实例中,我可以创建/粘贴超链接! 🎉
https://i.stack.imgur.com/UZneU.png
将复制团队会议信息的超链接粘贴到 Slack 中的示例:
https://i.stack.imgur.com/TbdNc.png
Slack 已更新 their documentation。虽然 😢 仍然没有降价方式,即 [blah](https://stackoverflow.com)
不起作用。
整洁的功能,当 URL 在剪贴板上时选择一些文本和 CTRL + V 并创建超链接🥳
https://i.stack.imgur.com/ynFT4.gif
通过一些逆向工程,我能够通过 C# 将文本放在 Windows 剪贴板上并将其粘贴到 Slack 中:
var textToDisplay = "Test";
var url = "https://stackoverflow.com";
var arbitraryText = "Mike D.";
var dataObject = new DataObject();
//to my surprise, the Fragment comments ARE required
dataObject.SetData(DataFormats.Html, @$"<html><body>
<!--StartFragment-->
<a href=""{url}"">{textToDisplay}</a>
<!--EndFragment-->
</body></html>");
//have to set the Text format too otherwise it won't work
dataObject.SetData(DataFormats.Text, arbitraryText);
Clipboard.SetDataObject(dataObject);
截至 2021 年 8 月,此功能终于在 slack 应用程序中启用了标记模式。 https://slack.com/intl/en-nl/help/articles/202288908-Format-your-messages#markup
Surround text with brackets, then surround the link with parentheses:
[your text](the link)
[label](link)
现在可以在 Slack 应用程序中使用,但仅供参考,此答案中引用的页面上不再记录。
<L|T>
格式。
如果您使用的是 slack-bot 或使用 Slack API 的东西,您将能够为您的消息使用 mrkdwn
语法。
<http://www.example.com|This message is a link>
参考:https://api.slack.com/reference/surfaces/formatting
Reuben 的 answer 可以工作,但它看起来像一个未命名的文件上传,如下所示:untitled file posted to Slack。但是,只需稍作修改,您就可以轻松发布具有工作超链接的自然消息,如下所示:natural looking Slack post with hyperlink 通过使用 chat.postMessage Slack api 方法而不是“files.upload”并采用 Slack 自己的 {6 } 而不是 Markdown。这将是这样的:
curl -F text="*<https://someurl|like this>*" -F as_user=true -F link_names=true -F channel=C1.....7L -F token=xoxp-... https://slack.com/api/chat.postMessage
此示例中未使用 link_names=true
参数,但它对于能够@
提及用户和#
引用频道很有用。
作为 Slack 消息(在 Wilhem 的 answer 中介绍)的替代方案,您可以通过 API 创建 Slack 帖子并至少使用一些 Markdown。这些都创建 <h2><a href="https://someurl">like this</a></h2>
:
curl -F filetype=post -F content="# [like this](https://someurl)" -F channels=C1.....7L -F token=xoxp-... https://slack.com/api/files.upload
或将 content="..."
换成 file=@post.md
curl -F filetype=post -F file=@post.md -F channels=C1.....7L -F token=xoxp-... https://slack.com/api/files.upload
这是使用 files.upload。我认为尝试像自己一样发帖的最简单方法是使用 a legacy token。从频道的 URI 中获取频道 ID。
我的标记设置被禁用,一旦我启用它(首选项-> 高级-> 使用标记格式化消息),它就可以工作了。
https://i.stack.imgur.com/I5okL.png
我编写了这段代码来将正文中的 markdown 链接转换为 slack 期望的链接格式:
// Pretty hacky, convert [sup](http://foo.com) to <http://foo.com|sup>
const reformatLinks = /\[(.*?)\]\((.*?)\)/g
const slackBody = body.replace(reformatLinks, (_m, text, url) => `<${url}|${text}>`)
据我所知,slack 不支持文本内的图像链接。
此处其他答案(Markdown、<a|b>
等)中的任何标记都不再有效。
如果您是手工编写,那么对我来说,有些东西比文档中的键盘快捷键更好(因为该快捷键与 Linux 上的全局默认值冲突并且很难解决)。
将您的 URL 复制到剪贴板,然后选择您想作为锚文本的文本,然后粘贴 URL,就好像您要用 URL 替换所选文本一样。 Slack 会自动将所选文本转换为链接。
当 url 涉及垂直条时,这种形式的降价有问题 |用 urltext.replace("|", "%7C") 解决了这个问题
按照 spotmahn 的回答,这就是我如何让它在 Javascript 中工作。请注意,对于 Firefox,用户需要 enable a flag 才能工作。
a.addEventListener("click", function() {
var textToDisplay = "foo";
var url = "https://stackoverflow.com";
var message = `<html><body>
<!--StartFragment-->
<a href="${url}">${textToDisplay}</a>
<!--EndFragment-->
</body></html>`;
const htmlBlob = new Blob([message], {type : 'text/html'});
const textBlob = new Blob(["sda"], {type : 'text/plain'});
const cbi = new ClipboardItem({
['text/html']: htmlBlob,
['text/plain']: textBlob
});
navigator.clipboard.write([cbi]);
});
派对迟到了,但我最近发现你可以使用 URL 缩短器来创建一个 https 链接,然后你可以使用 markdown 链接来引用它。
不定期副业成功案例分享