Слабая уценка для ссылок не разрешается


159

Что я делаю не так? Ни одна из примеров ссылок Markdown не работает в моем приложении Slack.

Я вставил приведенный ниже пример в чат в моем приложении Slack. Я получил этот пример из синтаксиса Slack Markdown, и он все еще обрабатывает его как буквальный текст в Slack App:

[like this](http://someurl)

так что в итоге я вижу это вместо просто «как это» в качестве ссылки в чате Slack.

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


1
Кажется, это неразрешенная ошибка (у меня тоже не работает) github.com/slackhq/hubot-slack/issues/114
— Петр Газаров

Мало того, что не реализуют эту функциональность, они также не включают темную тему! это возмутительно для такого популярного инструмента ... с другой стороны, именно так популярные инструменты внезапно становятся непопулярными ...
— pkaramol

Ответы:


195

В настоящее время Slack не поддерживает гиперссылки; посмотрите эту ссылку, которая говорит:

Примечание . Невозможно связать слова в сообщении Slack.


ОБНОВИТЬ:

Slack наконец добавил эту функциональность в свой интерфейс чата ( источник ):

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

Скопировать ссылку Вы хотите поделиться и вставить его в пустом поле в ссылке , а затем нажмите кнопку Сохранить .


14
Речь идет конкретно о slack-apiкотором делает поддержка гиперссылок текста.
— spencer.sm

5
Это неудачно. Гиперссылка существует уже более 20 лет, трудно предположить, что это проблема безопасности. Вставка сверхдлинных ссылок действительно раздражает, по крайней мере, в slack следует добавить службу автоматического сокращения URL-адресов (что, конечно, будет необязательным).
— superarts.org

1
Кажется, теперь это возможно. Но я не могу заставить его работать. Независимо от того, что я делаю, Слэк просто получает Arrayсообщение в канале. Смотрите примеры здесь: api.slack.com/messaging/composing/formatting#linking-urls
— TJ Zimmerman

153

Slack использует собственный вид уценки:
Slack Markdown Links работает следующим образом:<http://someurl|like this>

Примечание: Вы можете сделать это только через Slack API, а НЕ просто как простое сообщение, которое вы отправляете через клиент Slack.

Пример построителя сообщений
введите описание изображения здесь Дополнительная информация в Документах


63
Есть ли способ сделать это через клиент Slack?
— Крис Миллер

5
Я так не думаю. Slack явно не хочет слишком усложнять ввод. Подробнее в нижней части этой справочной статьи: get.slack.help/hc/en-us/articles/…
— Вильгельм Клопп

262
Одним из способов избежать чрезмерного усложнения было бы придерживаться популярного и устоявшегося формата ... такого как Markdown. ;-)
— joeytwiddle

74
+ joeytwiddle Это означало бы, что Slack намеренно делает что-то удобное для пользователя и интуитивно понятное, что, я уверен, противоречит политике их компании.
— Питер Р

6
Пожалуйста, поддержите этот запрос здесь: slack.canny.io/feature-requests/p/…
— Жюль Сэм. Рэндольф

33

Это еще не поддерживается Slack для прямых сообщений, вы можете сделать это только с помощью Slack API. Но вы можете отправить запрос на добавленную мной функцию .


3
Извините, неработающая ссылка :(
— ocramot

Похоже, что они отключили свой канал для сбора запросов на добавление новых функций. Надеюсь, что это только временно.
— Жюль Сэм. Рэндольф

Ссылка не битая. Они намеренно отключили доску. Grr.
— рмхаррисон

18

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

скриншот гиперссылки

Пример вставки гиперссылки из копии информации о собрании команд в Slack:

пример вставки гиперссылки


Slack обновил свою документацию . Тем не менее, нет уценки способ сделать это, хотя doesn't, то [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);

6
Проголосовал, потому что это по сути ответ. Люблю вставлять ссылки, люблю горячие клавиши ... к сожалению, я отключил их WYSIWYG, чтобы он перестал связываться с другими вещами, которые я пытаюсь написать, и для тех, кто из нас счастлив, нет никакой альтернативы используя уценку (-ish) форматирования в виде простого текста.
— Тайлер Джеймс Янг

@ Тайлер . Я рад, что я не единственный, кто делает это тоже!
— frakman1

1
Мне удалось заставить это работать без комментариев фрагмента
— Tennabey

5

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

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

напиши как это. (Это будет работать только с использованием Slack API. Slack Bots / Slack Apps)

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

Ссылка: https://api.slack.com/messaging/composing/formatting#linking-urls


4
Немного вводит в заблуждение, когда я начинаю этот пост с «Случайно ссылаться на 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

Это использует файлы .upload . Я думаю, что самый простой способ попробовать опубликовать себя, используя устаревший токен . Получить идентификатор канала из URI канала.


0

Я написал этот код для преобразования ссылок уценки в теле текста в формат ссылок, ожидаемый 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}>`)

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


-2

Очень поздно для вечеринки, но я недавно обнаружил, что вы можете использовать сокращатель URL для создания https-ссылки, на которую вы затем можете ссылаться, используя ссылки уценки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.