La holgura de descuento para enlaces no se resuelve


159

¿Qué estoy haciendo mal? Ninguno de los enlaces de Markdown de ejemplo funciona hasta ahora en mi aplicación Slack.

Pegué el siguiente ejemplo en un chat en mi aplicación Slack. Obtuve este ejemplo de la sintaxis de reducción de holgura y todavía lo trata como texto literal en la aplicación Slack:

[like this](http://someurl)

así que termino viendo eso en lugar de simplemente "me gusta" como un enlace en el chat de Slack.

O tal vez lo anterior está mal, en cuyo caso mi pregunta sería cómo crear explícitamente enlaces en Slack. Quiero que se haga clic en un texto que especifique para hacer clic en una URL específica (hipervínculo).


1
Parece ser un error sin resolver (tampoco funciona para mí) github.com/slackhq/hubot-slack/issues/114
Petr Gazarov

¡no solo no están implementando esta funcionalidad, sino que tampoco incluyen un tema oscuro! esto es indignante para una herramienta tan popular ... por otro lado, así es como las herramientas populares se vuelven impopulares de repente ...
pkaramol

Respuestas:


195

Slack actualmente no admite hipervínculos; mira este enlace que dice:

Nota : No es posible hacer hipervínculos de palabras en un mensaje de Slack.


ACTUALIZAR:

Slack finalmente ha agregado esta funcionalidad a su interfaz de chat ( fuente ):

  • Seleccione el texto, luego haga clic en el icono del enlace en la barra de herramientas de formato
  • Seleccione texto, luego presione Cmd+ Shift+ Uen Mac o Ctrl+ Shift+ Uen Windows / Linux.

Copie el enlace que desea compartir y péguelo en el campo vacío en Enlace , luego haga clic en Guardar .


14
La pregunta es específicamente sobre el slack-apicual hace de soporte hipervínculo de texto.
spencer.sm

55
Esto es desafortunado. Hyperlink ha existido por más de 20 años, es difícil suponer que este es un problema de seguridad. Pegar enlaces súper largos es realmente molesto, al menos la holgura debería agregar un servicio automático de acortamiento de URL (que sería opcional, por supuesto).
superarts.org

1
Parece que esto ahora es posible. Pero no puedo hacer que funcione. No importa lo que haga, Slack solo recibe Arrayel mensaje en el canal. Vea los ejemplos aquí: api.slack.com/messaging/composing/formatting#linking-urls
TJ Zimmerman

153

Slack usa su propio sabor de
Markdown: los enlaces de Slack Markdown funcionan de la siguiente manera:<http://someurl|like this>

Nota: Solo puede hacerlo a través de la API de Slack y NO solo como un simple mensaje que envía a través del cliente de Slack.

Ejemplo de generador de mensajes Más información en los documentos
ingrese la descripción de la imagen aquí


63
¿Hay alguna manera de hacer esto a través del cliente Slack?
Chris Miller

55
No lo creo. Slack explícitamente no quiere complicar demasiado la entrada. Más al final de este artículo de ayuda: get.slack.help/hc/en-us/articles/…
Wilhelm Klopp

262
Una forma en que podrían haber evitado la complicación excesiva habría sido apegarse a un formato popular y bien establecido ... como Markdown. ;-)
joeytwiddle

74
+ joeytwiddle Eso significaría que Slack hace intencionalmente algo que es fácil de usar e intuitivo, lo cual estoy bastante seguro de que va en contra de la política de su empresa.
Peter R

66
Vota esta solicitud de función aquí: slack.canny.io/feature-requests/p/…
Jules Sam. Randolph


18

A partir de hoy, 2020.02.14, en una de las instancias de Slack en la que soy miembro, ¡puedo crear / pegar hipervínculos! 🎉

captura de pantalla de hipervínculo

Ejemplo de pegar hipervínculo de copiar la información de la reunión de Teams en Slack:

pegar ejemplo de hipervínculo


Slack ha actualizado su documentación . Sin embargo, todavía no hay una forma de rebajarlo 😢, es decir [blah](https://stackoverflow.com), no funciona.


Función ordenada, seleccione texto y CTRL + V cuando una URL esté en el portapapeles y cree un hipervínculo 🥳

seleccionar texto y ctrl + v video]


A través de un poco de ingeniería inversa, pude poner texto en el Portapapeles de Windows a través de C # y hacer que se pegue en 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);

66
Votado porque esta es esencialmente la respuesta. Me encanta pegar para vincular, me encanta la tecla de acceso rápido ... desafortunadamente he desactivado su WYSIWYG para que deje de meterse con otras cosas que estoy tratando de escribir, y no parece haber ninguna alternativa para aquellos de nosotros felices usando el formato markdown (-ish) en texto plano.
Tyler James Young

@Tyler . ¡Me alegro de no ser el único que hace esto también!
frakman1

1
Me las arreglé para hacerlo funcionar sin los fragmentos de comentarios
tennabey

5

La respuesta de Rubén funcionará, pero se verá como una carga de archivo sin título, como se ve aquí: archivo sin título publicado en Slack . Sin embargo, con una ligera modificación, puede publicar fácilmente un mensaje de aspecto natural con un hipervínculo funcional como se ve aquí: publicación de Slack de aspecto natural con hipervínculo utilizando el método de la API chat.postMessage Slack en lugar de "files.upload" y adoptando Slack's propio formato de mensaje en lugar de Markdown. Eso se haría así:

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

El link_names=trueargumento no se usa en este ejemplo, pero es útil para poder @mencionar usuarios y #referirse a canales.


5

Incluya la URL directamente en el markdowntexto y el servidor la transformará automáticamente en un enlace.

Escribe así. (Solo funcionará usando la API de slack. Slack bots / slack apps)

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

Referencia: https://api.slack.com/messaging/composing/formatting#linking-urls


44
Es un poco engañoso comenzar esta publicación con "Para vincular las URL casualmente en una conversación" y, finalmente, afirmar que esto solo funciona si está publicando un mensaje a través de API (que no es cómo participo casualmente en las conversaciones como humano).
Tyler James Young

4

Como alternativa a los mensajes de Slack (cubiertos en la respuesta de Wilhem ), puede crear publicaciones de Slack a través de la API y utilizar al menos un Markdown. Estos dos crean :<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

o cambiar content="..."porfile=@post.md

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

Esto está usando files.upload . Creo que la forma más fácil de intentar publicar como tú mismo es con un token heredado . Obtenga la identificación del canal del URI del canal.


0

Escribí este código para convertir enlaces de descuento dentro de un cuerpo de texto al formato de enlace que Slack espera:

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

Por lo que puedo decir, slack no admite enlaces de imagen dentro del texto.


-2

Súper tarde a la fiesta, pero recientemente descubrí que puedes usar un acortador de URL para crear un enlace https al que luego puedes hacer referencia usando enlaces de descuento.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.