La configuración Habilitar atajos de emoji debería permitir escapar con barras invertidas

Cuando la configuración activar atajos de emojis está habilitada, los emoticonos como :) se convierten en emojis reales (:slight_smile:). Sin embargo, esto no se puede omitir simplemente añadiendo una barra invertida antes (\:)). Esto es inconsistente con otras situaciones donde la secuencia de escape funciona, y en Discord tienes una configuración similar:

image

Sin embargo, no es obligatoria: si quiero que :-) aparezca tal cual, solo necesito escribir una barra invertida antes y obtengo lo que deseo.

Para omitirlo, necesitas usar algo como un carácter de ancho cero en medio, o envolver una letra entre corchetes angulares en el medio, ya que estos no se renderizan, etc. Es decir:

:<g>), :​)

lo cual genera una mala experiencia de usuario para quienes desean un poco más de libertad al escribir emojis.

8 Me gusta

Esto no son solo atajos, son todos emojis. Supongo que no me opongo a cambiarlo para que dejemos de usar emojis si tenemos una barra invertida antes.

Así que:

\:thinking: tiene la misma paridad que \`thinking` y \*thinking*

:thinking: tiene la misma paridad que `thinking` y *thinking*

5 Me gusta

Hice una publicación sobre esto en el foro de desarrolladores de Roblox, que usa Discourse, y estoy de acuerdo: tener que usar siempre caracteres vacíos o cualquier cosa para NO usar un emoji es bastante molesto. Los emojis suelen hacer que tu publicación sea un poco menos profesional, y a veces quieres un poco de :) pero no un :slight_smile:

Espero que esto cambie. (“Supongo que no se actualizará, ya que es de código abierto y todo eso;”)

En realidad, encontré este tema porque acabo de toparme con esta misma consulta (intenté escapar de un emoticono, pero, por desgracia, se convirtió en un emoji Y se tragó mi carácter de escape… la audacia, ajajaja)

Ya tenemos un mecanismo de evasión existente para esto en formato de retrocomillas, por ejemplo :-) y :) .. además de bloques de código .. no estoy muy seguro de que necesitemos aún más métodos para lograr el mismo objetivo?

Mi punto era más bien sobre el uso de emojis en una conversación real, ¿y no sería simplemente una cuestión de no renderizar el emoji, manteniéndolo como un emoticón si hay una barra invertida antes de él?

`` son para código en línea; si no estás teniendo una discusión de programación, usar bloques de código no tiene sentido. Incluso si lo fuera, aún no tendría sentido, ya que los códigos en línea generalmente se usan para resaltar una sola línea de código o para resaltar nombres de clases/miembros y cosas así.

1 me gusta

No exactamente: HTML intentará renderizar si escribes <a>, por ejemplo. Por lo tanto, los bloques de código en línea son la forma esperada de renderizar eso.

Simplemente no estoy seguro de querer gastar valioso tiempo de ingeniería en algo que ya tenemos una forma de manejar.

He marcado este tema como ‘PR welcome’. Lo revisé durante 15 minutos y no hay una solución trivial.

Nuestro parser consume el código de escape, así que para cuando lo tenemos, ya no sabemos que el escape estaba allí.

Cualquier solución que exista aquí implicará modificar markdown.it y enviar un parche aguas arriba. Es muy, muy complicado… cc @Vitaly

El mismo problema ocurre en https://markdown-it.github.io/

Recomiendo abrir un ticket aguas arriba, aunque esto podría significar que necesitemos anotar los tokens de texto con el “texto original sin procesar del token de texto”.

El nivel de dificultad de esto es de aproximadamente 95.

4 Me gusta

Este error tiene un diseño similar a “los guiones bajos pueden romper los enlaces automáticos”, pero puede ser un arreglo específico posible. Echaré un vistazo a lo que se puede hacer.

Incidencia creada: Postpone escape info drop · Issue #840 · markdown-it/markdown-it · GitHub

2 Me gusta

Debo discrepar rotundamente. “:)” simplemente no es lo mismo que “:<)”.

Aun así, estoy de acuerdo en que esto no es algo en lo que se deba perder tiempo/dinero. Molesto, pero comprensible.

Parece que @Vitaly lo arregló en la v13, actualizaremos a ella.

2 Me gusta

Un usuario en mi foro se quejó de este problema de formato. He deshabilitado la autocompletación de emojis como solución para nuestro caso de uso, pero dado que Discourse se actualizó a markdown-it v13 hace un tiempo, el problema parece persistir, mientras que el escape con barra invertida ahora funciona en https://markdown-it.github.io/\n\n¿Podría deberse a que ember.js todavía depende de markdown v12, como se indica aquí? \nMultisite build error: #<MiniRacer::RuntimeError: Error: Parser rule not found: fragments_join> - #6 by david

Ya estamos en la 13, que yo sepa… cc @david y el problema persiste.

Parece que tenemos nuestra propia implementación de Emoji; no usamos la de markdown-it.

(atajos definidos aquí, referenciados aquí. La lógica de reemplazo está aquí)

3 Me gusta

Así que esto debería ser bastante sencillo de arreglar (famosas últimas palabras)

Empecé a trabajar en esto ahora. :slight_smile:

Editar: Esto puede ser más difícil de lo que pensaba. :upside_down_face:

2 Me gusta