Slack Markdown for Links nie rozwiązuje


159

Co ja robię źle? Żaden z przykładowych linków Markdown nie działa jak dotąd w mojej aplikacji Slack.

Wklejam poniższy przykład na czacie w mojej aplikacji Slack. Mam ten przykład ze składni slack markdown i nadal traktuje go jako tekst dosłowny w aplikacji Slack:

[like this](http://someurl)

więc w końcu widzę to zamiast po prostu „tak” jako link na czacie Slack.

A może powyższe jest błędne, w takim przypadku moje pytanie brzmiałoby, jak jawnie tworzyć linki w Slacku? Chcę, aby określony przeze mnie tekst był klikalny do określonego adresu URL (hiperłącza).


1
Wydaje się, że to nierozwiązany błąd (dla mnie też nie działa) github.com/slackhq/hubot-slack/issues/114
Petr Gazarov

nie tylko nie wdrażają tej funkcji, ale także nie zawierają ciemnego motywu! to jest oburzające jak na tak popularne narzędzie ... z drugiej strony tak popularne narzędzia nagle stają się niepopularne ...
pkaramol

Odpowiedzi:


195

Slack obecnie nie obsługuje hiperłączy; zobacz ten link, który mówi:

Uwaga : nie można tworzyć hiperłączy do słów w wiadomości na Slacku.


AKTUALIZACJA:

Slack w końcu dodał tę funkcjonalność do swojego interfejsu czatu ( źródło ):

  • Zaznacz tekst, a następnie kliknij ikonę łącza na pasku narzędzi formatowania
  • Zaznacz tekst, a następnie naciśnij Cmd+ Shift+ Una Macu lubCtrl + Shift+ Uw Windows / Linux.

Skopiuj link, który chcesz udostępnić, i wklej go w pustym polu pod Link , a następnie kliknij Zapisz .


14
Pytanie brzmi konkretnie o slack-apiktóry robi wsparcie linkiem tekst.
spencer.sm

5
To niefortunne. Hiperłącze istnieje od ponad 20 lat, trudno założyć, że jest to kwestia bezpieczeństwa. Wklejanie bardzo długich linków jest naprawdę denerwujące, przynajmniej slack powinien dodać usługę automatycznego skracania adresów URL (co oczywiście byłoby opcjonalne).
superarts.org

1
Wygląda na to, że jest to teraz możliwe. Ale nie mogę zmusić go do pracy. Bez względu na to, co robię, Slack po prostu otrzymuje Arrayjako wiadomość na kanale. Zobacz przykłady tutaj: api.slack.com/messaging/composing/formatting#linking-urls
TJ Zimmerman

153

Slack używa swojego własnego stylu przecen:
linki Slack Markdown działają w następujący sposób:<http://someurl|like this>

Uwaga: Możesz to zrobić tylko za pośrednictwem Slack API, a NIE jako zwykłej wiadomości wysyłanej przez klienta Slack.

Przykład kreatora wiadomości Więcej informacji w Dokumentach
wprowadź opis obrazu tutaj


63
czy istnieje sposób, aby to zrobić za pośrednictwem klienta Slack?
Chris Miller,

5
Nie sądzę. Slack wyraźnie nie chce nadmiernie komplikować danych wejściowych. Więcej na dole tego artykułu pomocy: get.slack.help/hc/en-us/articles/…
Wilhelm Klopp

260
Jednym ze sposobów uniknięcia nadmiernych komplikacji byłoby trzymanie się popularnego i ugruntowanego formatu ... takiego jak Markdown. ;-)
joeytwiddle

72
+ joeytwiddle Oznaczałoby to, że Slack celowo robi coś, co jest przyjazne dla użytkownika i intuicyjne, co, jestem prawie pewien, jest sprzeczne z polityką firmy.
Peter R

6
Proszę, zagłosuj na tę prośbę o funkcję tutaj: slack.canny.io/feature-requests/p/…
Jules Sam. Randolph,

33

Nie jest to jeszcze obsługiwane przez Slack dla bezpośrednich wiadomości, możesz to zrobić tylko za pomocą Slack API. Ale możesz zagłosować za propozycją funkcji, którą tutaj przesłałem .


3
Przepraszamy, uszkodzony link :(
ocramot

Wygląda na to, że wyłączyli swój sprytny kanał do zbierania próśb o funkcje. Mam nadzieję, że to tylko tymczasowe.
Jules Sam. Randolph

Link nie jest uszkodzony. Celowo wyłączyli tablicę. Grr.
rmharrison

18

Od dzisiaj, 2020.02.14, w jednej z instancji Slacka, do których należę, mogę tworzyć / wklejać hiperłącza! 🎉

zrzut ekranu hiperłącza

Przykład wklejania hiperłącza z kopiowania informacji o spotkaniu Teams do Slack:

wklej przykład hiperłącza


Slack zaktualizował swoją dokumentację . Nadal nie ma na to żadnego przecenionego sposobu 😢, tj. [blah](https://stackoverflow.com)Nie działa.


Fajna funkcja, zaznacz tekst i CTRL + V, gdy adres URL jest w schowku i tworzy hiperłącze 🥳

zaznacz tekst i ctrl + v wideo]


Dzięki inżynierii odwrotnej mogłem umieścić tekst w schowku systemu Windows za pomocą C # i wkleić go do Slacka:

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
Głosowano za, ponieważ jest to zasadniczo odpowiedź. Uwielbiam wklej do-linkify, uwielbiam skróty ... niestety wyłączyłem ich WYSIWYG, aby przestały mieszać z innymi rzeczami, które próbuję napisać, i nie ma alternatywy dla tych z nas, którzy są szczęśliwi używając formatowania markdown (-ish) w zwykłym tekście.
Tyler James Young

@Tyler . Cieszę się, że nie tylko ja to robię!
frakman

1
Udało mi się to zrobić bez komentarzy fragmentów
tennabey

5

Ruben „s odpowiedź będzie działać, ale to będzie wyglądać bez tytułu przesyłania plików, jak widać tutaj: untitled plik wysłana do Slack . Jednak z niewielką modyfikacją możesz łatwo opublikować naturalnie wyglądającą wiadomość zawierającą działające hiperłącze, takie jak tutaj: naturalnie wyglądający post na Slacku z hiperłączem , używając metody api chat.postMessage Slack zamiast "files.upload" i przyjmując Slack własne formatowanie wiadomości zamiast Markdown. Byłoby to zrobione w ten sposób:

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=trueArgument ten nie jest stosowany w tym przykładzie, ale jest przydatna, aby móc @wymienić użytkowników i #odnoszą się do kanałów.


5

Umieść adres URL bezpośrednio w markdown tekście, a zostanie on automatycznie przekształcony przez serwer w link.

pisz w ten sposób. (Będzie działać tylko przy użyciu slack API. Slack boty / slack apps)

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

Źródła: https://api.slack.com/messaging/composing/formatting#linking-urls


3
Trochę mylące jest rozpoczęcie tego posta od „Aby od niechcenia odsyłać do adresów URL w rozmowie” i ostatecznie stwierdzenie, że działa to tylko wtedy, gdy piszesz wiadomość przez API (co nie jest sposobem, w jaki zwykłem uczestniczyć w rozmowach jako człowiek).
Tyler James Young

4

Jako alternatywę do Slack Wiadomości (pokryte Wilhem „s odpowiedź ), można utworzyć Slack posty za pośrednictwem interfejsu API i wykorzystania przynajmniej niektóre Markdown. Obie tworzą <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

lub zamień content="..."nafile=@post.md

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

To jest użycie files.upload . Myślę, że najłatwiejszym sposobem na opublikowanie postu jako siebie jest użycie starszego tokena . Uzyskaj identyfikator kanału z identyfikatora URI kanału.


0

Napisałem ten kod, aby przekonwertować linki markdown w treści tekstu na format linków, którego oczekuje 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}>`)

Z tego co wiem, slack nie obsługuje linków do obrazów w tekście.


-2

Bardzo późno na imprezę, ale niedawno odkryłem, że możesz użyć skracacza adresów URL, aby utworzyć łącze https, do którego możesz się odwołać za pomocą linków przecen.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.