链接的Slack Markdown无法解析


159

我究竟做错了什么?到目前为止,示例Markdown链接都无法在我的Slack应用中正常工作。

我在Slack应用的聊天中粘贴了以下示例。我从Slack Markdown语法中得到了这个示例,它在Slack App中仍然将其视为文字文本:

[like this](http://someurl)

因此我最终在Slack聊天中看到的不仅仅是链接“像这样”。

还是上面的说法是错误的,在这种情况下,我的问题将是如何在Slack中显式创建链接?我希望我指定的一些文本可单击到特定的URL(超链接)。


1
似乎是未解决的错误(对我也不起作用
Petr Gazarov '16

不仅没有实现此功能,而且还没有包含深色主题!这对于如此受欢迎的工具而言实在令人发指。.另一方面,这就是为什么受欢迎的工具突然变得不受欢迎...
pkaramol

Answers:


195

Slack当前不支持超链接。看到以下链接

注意:无法在Slack消息中超链接单词。


更新:

Slack终于在其聊天界面()中添加了此功能:

  • 选择文本,然后单击格式工具栏中的链接图标
  • 选择文本,然后按Cmd+ Shift+ UMac或Ctrl+ Shift+ UWindows / Linux上。

复制您要共享的链接,并将其粘贴到“ 链接”下的空白字段中,然后单击“ 保存”


14
现在的问题是专门关于slack-api支持超链接的文本。
spencer.sm

5
这是不幸的。超链接已经存在了20多年,很难假设这是一个安全问题。粘贴超长链接确实很烦人,至少要放松一下,应添加自动URL缩短服务(当然这是可选的)。
superarts.org

1
现在看来这是可能的。但是我无法使其正常工作。不管我做什么,Slack都会Array在频道中收到消息。请参阅此处的示例:api.slack.com/messaging/composed/formatting#linking-urls
TJ Zimmerman

153

Slack使用自己的降价方式:
Slack Markdown链接的工作方式如下:<http://someurl|like this>

注意:您只能通过Slack API来执行此操作,而不仅仅是通过Slack客户端发送的简单消息。

Message Builder示例文档中的更多信息
在此处输入图片说明


63
是否可以通过Slack客户端执行此操作?
克里斯·米勒

5
我不这么认为。Slack明确不想使输入复杂化。此帮助文章底部的更多信息:get.slack.help/hc/en-us/articles/…–
威廉·克洛普

260
他们可以避免过度复杂化的一种方法是坚持使用一种流行且公认的格式,例如Markdown。;-)
joeytwiddle

72
+ joeytwiddle这意味着Slack故意做一些用户友好和直观的事情,我敢肯定这违反了他们的公司政策。
Peter R

6
请在此处批准
朱尔斯·萨姆


18

截至今天,2020年2月14日的,在一个滞缓情况下的我是成员,我可以创建/粘贴链接!🎉

超链接截图

从复制团队会议信息到Slack中粘贴超链接的示例:

粘贴超链接示例


Slack更新了他们的文档。😢仍然没有降价的方法,即 [blah](https://stackoverflow.com)不起作用。


整洁的功能,当URL在剪贴板上并创建超链接时,选择一些文本和CTRL + V

选择文字和Ctrl + V视频]


通过一些逆向工程,我能够通过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);

5
赞成,因为这实质上是答案。爱粘贴链接,喜欢热键...不幸的是,我禁用了他们的所见即所得,以便它不再与我要写的其他东西混在一起,对于我们这些快乐的人来说似乎没有其他选择在纯文本中使用markdown(-ish)格式。
Tyler James Young

@Tyler。我很高兴我不是唯一做到这一点的人!
frakman1

1
我设法使其在没有片段评论的情况下正常工作
tennabey

5

Reuben答案可以用,但看起来像是无标题的文件上传,如下所示:无标题的文件发布到Slack。但是,只需稍作修改,您就可以轻松地发布具有正常工作的超链接的自然外观消息,如您在此处看到的:通过使用chat.postMessage Slack api方法而不是“ files.upload”并采用Slack的方法,自然看起来带有超链接Slack帖子。自己的消息格式,而不是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参数在此示例中未使用,但对于能够@提及用户和#引用频道很有用。


5

直接在markdown文本中包含URL ,服务器会将其自动转换为链接。

这样写。(只有使用Slack API才能工作。Slackbots / Slack应用程序)

<http://www.example.com|This message *is* a link>

参考:https : //api.slack.com/messaging/composed/formatting#linking-urls


3
以“在对话中随意链接到URL”开头,并最终声明仅当您通过API发布消息时才起作用(这不是我作为人随便参加对话的方式),这有点误导。
泰勒·詹姆斯·扬

4

作为Slack消息的替代方法(在Wilhem答案中发现),您可以通过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。我认为尝试以自己的方式发布的最简单方法是使用旧令牌。从通道的URI获取通道ID。


0

我编写了这段代码,以将文本内的markdown链接转换为松弛期望的链接格式:

      // 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}>`)

据我所知,松弛不支持文本内的图像链接。


-2

派对晚了,但我最近发现您可以使用URL缩短器创建一个https链接,然后可以使用markdown链接进行引用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.