Невисокий розмір посилань не вирішується


159

Що я роблю неправильно? Жоден із прикладів посилань Markdown поки що не працює в моєму додатку Slack.

Я вставив приклад нижче в чаті в моєму додатку Slack. Цей приклад я отримав із синтаксису відмітки слабкого розміру, і він все ще трактує його як буквальний текст у програмі Slack:

[like this](http://someurl)

тож я в кінцевому підсумку бачу, що замість просто "подібного" як посилання в Slack чаті.

А може, вищезгадане неправильне, і тоді моє запитання буде таким, як ви явно створюєте посилання в Slack? Я хочу, щоб текст, який я вказав, можна було натискати на певну URL-адресу (гіперпосилання).


1
Невирішена помилка (не працює і для мене) github.com/slackhq/hubot-slack/isissue/114
Петро Газаров

не тільки не реалізують цю функціональність, вони також не включають темну тему! це обурливо для такого популярного інструменту. З іншого боку, ось як популярні інструменти раптом стають непопулярними ...
pkaramol

Відповіді:


195

В даний час Slack не підтримує гіперпосилання; дивіться це посилання, яке говорить:

Примітка : гіперпосилання слів у вільному повідомленні неможливо.


ОНОВЛЕННЯ:

Slack нарешті додав цю функціональність до свого інтерфейсу чату ( джерело ):

  • Виберіть текст, а потім натисніть значок посилання на панелі інструментів форматування
  • Виберіть текст, а потім натисніть Cmd+ Shift+ Uна Mac або Ctrl+ Shift+ Uу Windows / Linux.

Скопіюйте посилання, яке ви хочете поділитися, і вставте його в порожнє поле під Посилання , а потім натисніть кнопку Зберегти .


14
Йдеться конкретно про slack-apiякому робить підтримка гіперпосилань тексту.
spencer.sm

5
Це прикро. Гіперпосилання існує вже більше 20 років, важко припустити, що це питання безпеки. Вставлення надто довгих посилань дійсно дратує, принаймні, слабкий, слід додати послугу автоматичного скорочення URL-адрес (що, звичайно, не обов’язково).
superarts.org

1
Здається, це зараз можливо. Але я не в змозі змусити його працювати. Незалежно від того, що я роблю, Слак просто отримує Arrayповідомлення в каналі. Дивіться приклади тут: api.slack.com/messaging/composition/formatting#linking-urls
TJ Zimmerman

153

Slack використовує власний аромат розмітки:
Slack Markdown Links працює наступним чином:<http://someurl|like this>

Примітка. Ви можете це зробити лише через API Slack, а НЕ просто як просте повідомлення, яке ви надсилаєте через клієнт Slack.

Приклад Builder повідомлень Більше інформації в Документах
введіть тут опис зображення


63
чи можна зробити це через клієнта Slack?
Кріс Міллер

5
Я не думаю, що так. Slack явно не хоче надмірно ускладнювати введення. Більше в нижній частині цієї довідкової статті: get.slack.help/hc/en-us/articles/…
Вільгельм Клопп

260
Один із способів, яким вони могли б уникнути надмірних ускладнень, - це дотримуватися популярного та налагодженого формату ... як Markdown. ;-)
joeytwiddle

72
+ joeytwiddle Це означатиме, що Slack навмисно робить щось дружнє та інтуїтивно зрозуміле для користувачів, що, я впевнений, суперечить їх політиці компанії.
Пітер Р

6
Будь ласка, відправте цей запит на цю функцію тут: slack.canny.io/feature-requests/p/…
Жюль Сем. Рандольф

33

Це ще не підтримується Slack для прямих повідомлень, це можна зробити лише за допомогою Slack API. Але ви можете відхилити запит на функцію, який я подав тут .


3
Вибачте, пошкоджене посилання :(
ocramot

Здається, вони відключили свій канальний канал, щоб зібрати запити на функції. Сподіваюся, що це лише тимчасово.
Жюль Сем. Рандольф

Посилання не розірвано. Вони навмисно відключили правління. Grr
rmharrison

18

На сьогоднішній день, 2020.02.14, в одному з випадків Slack, в якому я є учасником, я можу створювати / вставляти гіперпосилання! 🎉

Скріншот гіперпосилання

Приклад вставки гіперпосилання з копії інформації про зустрічі команд у Slack:

приклад гіперпосилання вставки


Slack оновив свою документацію . Досі жоден спосіб відмітки [blah](https://stackoverflow.com)не робити це, хоча 😢, тобто не працює.


Акуратна функція, виберіть текст і CTRL + V, коли в буфер обміну є URL, і це створює гіперпосилання 🥳

виберіть текст & ctrl + v відео]


Через деяку зворотну інженерію я зміг помістити текст у буфер обміну Windows через C # і змусити його вставити в 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
Прихильне, тому що це по суті відповідь. Любіть "вставляти на зв'язки", любите гарячу клавішу ... на жаль, я відключив їх WYSIWYG, щоб він переставав возитися з іншими речами, які я намагаюся написати, і, здається, немає альтернативи для тих, хто з нас щасливий використання форматування розмітки (-ish) у простому тексті.
Тайлер Джеймс Янг

@Tyler . Я радий, що я не єдиний, хто робить це теж!
frakman1

1
Мені вдалося змусити його працювати без коментарів фрагменту
tennabey

5

Рувим «s відповідь буде працювати, але він буде виглядати безіменну завантаження файлу, як показано тут: безіменний файл розміщений в відбери . З невеликою модифікацією, однак, ви можете легко розмістити повідомлення з природним виглядом із робочим гіперпосиланням, як ви бачите тут: природний вигляд Slack-повідомлення з гіперпосиланням , використовуючи метод chat.postMessage Slack api замість "files.upload" та прийнявши Slack's власне форматування повідомлень замість 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

Включіть URL безпосередньо в markdownтекст, і він буде автоматично перетворений сервером у посилання.

пишіть так. (Він працюватиме лише за допомогою API для слабкого користування. Невільні боти / додаткові програми)

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

Довідка: https://api.slack.com/messaging/composition/formatting#linking-urls


3
Трохи вводити в оману почати цю публікацію з "Пов’язувати URL-адреси випадково в розмові", і, врешті-решт, заявити, що це працює лише в тому випадку, якщо ви публікуєте повідомлення за допомогою API (це не так, як я випадково беру участь у розмовах як людина).
Тайлер Джеймс Янг

4

В якості альтернативи відбери повідомлення (покритої Вільгельм «s відповіді ), ви можете створити натяжні повідомлення через API і використання принаймні деякі 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 каналу.


0

Я написав цей код, щоб перетворити посилання на розмітку в тексті тексту у слабкий формат посилання:

      // 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-посилання, на яке ви можете посилатися, використовуючи посилання на розмітку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.