Slack Markdown for Links Are Not Resolving

MarkdownSlack ApiSlack

Markdown Problem Overview


What am I doing wrong? None of the example Markdown links work so far in my Slack app.

I pasted in the example below in a chat in my Slack app. I got this example from slack markdown syntax and it still treats it as literal text in the Slack App:

[like this](http://someurl)

so I end up seeing that instead of just "like this" as a link in Slack chat.

Or maybe the above is wrong, in which case my question would then be how do you do explicitly create links in Slack? I want some text that I specify to be clickable to a specific URL (hyperlink).

Markdown Solutions


Solution 1 - Markdown

Slack uses their own flavor of markdown:
Slack Markdown Links work in the following way: <http://someurl|like this>

Note: You can only do this via the Slack API and NOT just as a simple message you send via the Slack client.

Message Builder Example
enter image description here More Info in the Docs

Solution 2 - Markdown

Slack currently does not support hyperlinks; see this link which says: > Note: It’s not possible to hyperlink words in a Slack message.


UPDATE:

Slack has finally added this functionality to their chat interface (source):

> * Select text, then click the link icon in the formatting toolbar > * Select text, then press Cmd+Shift+U on Mac or Ctrl+Shift+U on Windows/Linux. > > Copy the link you'd like to share and paste it in the empty field under Link, then click Save.

Solution 3 - Markdown

This is not yet supported by Slack for direct messages, you can only do this using Slack API. But you can upvote the feature request I have submitted here.

Solution 4 - Markdown

As of today, 2020.02.14, in one of the Slack instances I'm a member in, I can create/paste hyperlinks! 

hyperlink screenshot

Example pasting hyperlink from copy Teams meeting info into Slack:

paste hyperlink example


Slack has updated their documentation. Still no markdown way of doing it though , i.e. [blah](https://stackoverflow.com) doesn't work.


Neat feature, select some text and CTRL + V when a URL is on the clipboard and it creates a hyperlink 拾

![select text & ctrl + v video]]4


Through some reverse engineering I was able to put text on the Windows Clipboard via C# and get it to paste into 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);

Solution 5 - Markdown

As of August 2021 this feature is finally enabled for markup mode in slack app. 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)

Solution 6 - Markdown

If you are using slack-bot or something that uses Slack API, you'll be able to use mrkdwn syntax for your messages.

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

Reference: https://api.slack.com/reference/surfaces/formatting

Solution 7 - Markdown

Reuben's answer will work, but it will look like an untitled file upload, as seen here: untitled file posted to Slack. With a slight modification, however, you can easily post a natural looking message featuring a working hyperlink such as you see here: natural looking Slack post with hyperlink by using the chat.postMessage Slack api method instead of "files.upload" and adopting Slack's own message formatting instead of Markdown. That would be done like this:

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

The link_names=true argument isn't used in this example, but is useful to be able to @mention users and #refer to channels.

Solution 8 - Markdown

As an alternative to Slack Messages (covered in Wilhem's answer), you can create Slack Posts via the API and use at least some Markdown. These both create <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

or swap content="..." for [email protected]

curl -F filetype=post -F file=@post.md -F channels=C1.....7L -F token=xoxp-... https://slack.com/api/files.upload

This is using files.upload. I think the easiest way to try posting as yourself is with a legacy token. Get the channel ID from the URI of the channel.

Solution 9 - Markdown

My markup setting was disabled, once I've enabled it (Preferences -> Advanced -> Format messages with markup) it worked.

enter image description here

Solution 10 - Markdown

I wrote this code to convert markdown links within a body of text into the link format slack expects:

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

From what I can tell slack does not support image links inside text.

Solution 11 - Markdown

None of the markup in the other answers here (Markdown, <a|b>, etc.) works anymore.

If you're composing by hand, there's something that to me is better than the keyboard shortcut in the docs (since that shortcut conflicts with global defaults on Linux and is a pain to work around).

Copy your URL to the clipboard, then select the text you'd like to be the anchor text, and just paste the URL as if you were going to replace the selected text with the URL. Slack instead automatically turns the selected text into a link.

Solution 12 - Markdown

Had a problem with this form of markdown when the url is involving a vertical bar | solved this with urltext.replace("|", "%7C")

Solution 13 - Markdown

Super late to the party but I recently discovered that you can use a URL shortener to create a https link which you can then reference using markdown links.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPositiveGuyView Question on Stackoverflow
Solution 1 - MarkdownWilhelm KloppView Answer on Stackoverflow
Solution 2 - MarkdownpillraviView Answer on Stackoverflow
Solution 3 - MarkdownJules Sam. RandolphView Answer on Stackoverflow
Solution 4 - MarkdownspottedmahnView Answer on Stackoverflow
Solution 5 - MarkdowndududkoView Answer on Stackoverflow
Solution 6 - MarkdownPrakhil TPView Answer on Stackoverflow
Solution 7 - MarkdownMichael RobertsView Answer on Stackoverflow
Solution 8 - MarkdownReubenView Answer on Stackoverflow
Solution 9 - MarkdownTzach SolomonView Answer on Stackoverflow
Solution 10 - MarkdownratbeardView Answer on Stackoverflow
Solution 11 - MarkdownKevView Answer on Stackoverflow
Solution 12 - MarkdownlukasellView Answer on Stackoverflow
Solution 13 - MarkdownNoobishSREView Answer on Stackoverflow