Slack Markdown cho các liên kết không được giải quyết


159

Tôi đang làm gì sai? Cho đến nay, không có liên kết Markdown nào hoạt động trong ứng dụng Slack của tôi.

Tôi đã dán trong ví dụ dưới đây trong một cuộc trò chuyện trong ứng dụng Slack của mình. Tôi đã lấy ví dụ này từ cú pháp đánh dấu chậm và nó vẫn coi nó là văn bản theo nghĩa đen trong Ứng dụng Slack:

[like this](http://someurl)

Vì vậy, cuối cùng tôi thấy rằng thay vì chỉ "như thế này" như một liên kết trong trò chuyện Slack.

Hoặc có thể ở trên là sai, trong trường hợp đó câu hỏi của tôi sẽ là làm thế nào để bạn tạo liên kết rõ ràng trong Slack? Tôi muốn một số văn bản mà tôi chỉ định có thể nhấp vào một URL cụ thể (siêu liên kết).


1
Dường như là lỗi chưa được giải quyết (cũng không hoạt động đối với tôi) github.com/slackhq/hubot-slack/issues/114
Petr Gazarov 30/03/2016

Không chỉ không thực hiện chức năng này, chúng còn không bao gồm một chủ đề tối! điều này thật quá đáng đối với một công cụ phổ biến như vậy..trong khi đó, đây là cách các công cụ phổ biến trở nên không phổ biến một cách đột ngột ...
pkaramol

Câu trả lời:


195

Slack hiện không hỗ trợ siêu liên kết; xem liên kết này có nội dung:

Lưu ý : Không thể siêu liên kết các từ trong tin nhắn Slack.


CẬP NHẬT:

Slack cuối cùng đã thêm chức năng này vào giao diện trò chuyện ( nguồn ) của họ:

  • Chọn văn bản, sau đó nhấp vào biểu tượng liên kết trong thanh công cụ định dạng
  • Chọn văn bản, sau đó nhấn Cmd+ Shift+ Utrên Mac hoặc Ctrl+ Shift+ Utrên Windows / Linux.

Sao chép liên kết bạn muốn chia sẻ và dán nó vào trường trống trong Liên kết , sau đó nhấp vào Lưu .


14
Câu hỏi cụ thể là về slack-apicái nào hỗ trợ văn bản siêu liên kết.
spencer.sm

5
Điều này là không may. Hyperlink đã tồn tại hơn 20 năm, thật khó để cho rằng đây là vấn đề bảo mật. Việc dán các liên kết siêu dài thực sự gây phiền nhiễu, ít nhất là chùng nên thêm dịch vụ rút ngắn URL tự động (tất nhiên sẽ là tùy chọn).
superarts.org

1
Có vẻ như điều này là có thể. Nhưng tôi không thể làm cho nó hoạt động được. Không có vấn đề gì tôi làm Slack chỉ nhận được Arraytin nhắn trong kênh. Xem các ví dụ ở đây: api.slack.com/messaging/composes/formatted#linking-urls
TJ Zimmerman

153

Slack sử dụng hương vị đánh dấu riêng của họ:
Slack Markdown Links hoạt động theo cách sau:<http://someurl|like this>

Lưu ý: Bạn chỉ có thể thực hiện việc này thông qua API Slack và KHÔNG chỉ là một tin nhắn đơn giản bạn gửi qua ứng dụng khách Slack.

Trình tạo thư ví dụ Thông tin thêm trong tài liệu
nhập mô tả hình ảnh ở đây


63
Có cách nào để làm điều này thông qua máy khách Slack không?
Chris Miller

5
Tôi không nghĩ vậy. Slack rõ ràng không muốn quá phức tạp đầu vào. Thông tin chi tiết ở cuối bài viết trợ giúp này: get.slack.help/hc/en-us/articles/ cảm
Wilhelm Klopp

260
Một cách mà họ có thể tránh được sự quá phức tạp sẽ là gắn bó với một định dạng phổ biến và được thiết lập tốt ... như Markdown. ;-)
joeytwiddle

72
+ joeytwiddle Điều đó có nghĩa là Slack cố tình làm điều gì đó thân thiện và trực quan với người dùng, điều mà tôi khá chắc chắn là trái với chính sách của công ty họ.
Peter R

6
Vui lòng nâng cấp yêu cầu tính năng này tại đây: slack.canny.io/feature-requests/p/ mẹo
Jules Sam. Randolph

33

Điều này chưa được Slack hỗ trợ cho các tin nhắn trực tiếp, bạn chỉ có thể thực hiện việc này bằng API Slack. Nhưng bạn có thể nâng cấp yêu cầu tính năng tôi đã gửi ở đây .


3
Xin lỗi, liên kết bị hỏng :(
ocramot

Họ dường như đã vô hiệu hóa kênh canny của họ để thu thập các yêu cầu tính năng. Hy vọng đó chỉ là tạm thời.
Jules Sam. Randolph

Liên kết không bị hỏng. Họ cố tình vô hiệu hóa bảng. Grr.
rmharrison

18

Kể từ hôm nay, 2020.02,14, trong một trong những trường hợp Slack tôi là thành viên, tôi có thể tạo / dán siêu liên kết! 🎉

ảnh chụp màn hình siêu liên kết

Ví dụ dán siêu liên kết từ bản sao Thông tin cuộc họp nhóm vào Slack:

dán ví dụ siêu liên kết


Slack đã cập nhật tài liệu của họ . Vẫn không có cách đánh dấu nào để làm điều đó mặc dù, tức là [blah](https://stackoverflow.com)không hoạt động.


Tính năng gọn gàng, chọn một số văn bản và CTRL + V khi URL nằm trên bảng tạm và nó tạo ra một siêu liên kết

chọn văn bản & ctrl + v video]


Thông qua một số kỹ thuật đảo ngược, tôi đã có thể đưa văn bản lên Windows Clipboard thông qua C # và khiến nó được dán vào 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);

4
Upvote vì đây thực chất là câu trả lời. Yêu thích dán để liên kết, yêu phím nóng ... thật không may, tôi đã vô hiệu hóa WYSIWYG của họ để nó ngừng gây rối với những thứ khác mà tôi đang cố gắng viết và dường như không có sự thay thế nào cho những người trong chúng ta hạnh phúc sử dụng định dạng markdown (-ish) trong văn bản thuần túy.
Tyler James Young

@Tyler . Tôi rất vui vì tôi không phải là người duy nhất làm điều này!
frakman1

1
Tôi quản lý để làm cho nó hoạt động mà không có ý kiến ​​phân đoạn
tennabey

5

Câu trả lời của Reuben sẽ hoạt động, nhưng nó sẽ trông giống như một tệp tải lên không có tiêu đề, như được thấy ở đây: tệp không có tiêu đề được đăng lên Slack . Tuy nhiên, với một sửa đổi nhỏ, bạn có thể dễ dàng đăng một tin nhắn trông tự nhiên có một siêu liên kết đang hoạt động như bạn thấy ở đây: bài đăng Slack trông tự nhiên với siêu liên kết bằng cách sử dụng phương thức api chat.postMessage Slack thay vì "files.upload" và áp dụng Slack định dạng tin nhắn riêng thay vì Markdown. Điều đó sẽ được thực hiện như thế này:

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

Đối link_names=truesố không được sử dụng trong ví dụ này, nhưng rất hữu ích để có thể @đề cập đến người dùng và #tham khảo các kênh.


5

Bao gồm URL trực tiếp trong markdownvăn bản và nó sẽ được máy chủ tự động chuyển đổi thành một liên kết.

viết như thế này (Nó sẽ chỉ hoạt động bằng cách sử dụng API chùng. Các bot / ứng dụng chùng)

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

Tham khảo: https://api.slack.com/messaging/composes/formatted#linking-urls


2
Có một chút sai lầm khi bắt đầu bài đăng này với "Để liên kết với các URL một cách tình cờ" và cuối cùng nói rằng điều này chỉ hoạt động nếu bạn đăng một tin nhắn qua API (không phải là cách tôi tình cờ tham gia vào các cuộc hội thoại như một con người).
Tyler James Young

4

Thay thế cho Tin nhắn Slack (được nêu trong câu trả lời của Wilhem ), bạn có thể tạo Slack Post thông qua API và sử dụng ít nhất một số Markdown. Cả hai đều tạo ra :<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

hoặc trao đổi content="..."chofile=@post.md

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

Đây là sử dụng files.upload . Tôi nghĩ rằng cách dễ nhất để thử đăng bài như chính bạn là với mã thông báo cũ . Lấy ID kênh từ URI của kênh.


0

Tôi đã viết mã này để chuyển đổi các liên kết markdown trong một phần văn bản thành định dạng liên kết mà tôi mong đợi:

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

Từ những gì tôi có thể nói chùng không hỗ trợ liên kết hình ảnh bên trong văn bản.


-2

Siêu muộn đến bữa tiệc nhưng gần đây tôi phát hiện ra rằng bạn có thể sử dụng trình rút ngắn URL để tạo liên kết https mà sau đó bạn có thể tham chiếu bằng các liên kết đánh dấu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.