Formato de texto preformateado en línea utilizado cuando la selección multilínea no contiene saltos de línea

Prioridad/Severidad:

Medio

Plataforma

Sistema Operativo

Windows 11

Navegador

Google Chrome 141.0.7390.123

Discourse

ad36231adab58a8a249bfe8139aade2bde2134d3

Descripción:

Existen dos estilos de formato de “texto preformateado”:

  • en línea: para usar con contenido que no es prosa dentro de un pasaje de prosa (por ejemplo, “llama a la función foo”), o una sola línea corta de contenido que no es prosa.
  • bloque: para usar con múltiples líneas de contenido que no es prosa.

El usuario puede adoptar uno de dos enfoques para aplicar el formato al usar el compositor:

  • proactivo: el modo de formato se activa antes de agregar el contenido a formatear.
  • retroactivo: el contenido se agrega sin formato, luego se selecciona y se aplica el formato a esa selección.

:bug: Aplicar el formato de “texto preformateado” a una selección de varias líneas utiliza el estilo “en línea” inapropiado bajo las siguientes condiciones:

  • El compositor está en modo “editor de texto enriquecido”.
  • El formato se aplica retroactivamente.
  • No hay un salto de línea forzado en el contenido seleccionado.

Esto hace que la publicación sea difícil de leer y el contenido que no es prosa sea difícil de copiar (un requisito común para el código compartido).

Pasos para reproducir:

  1. Abra el compositor.
  2. Coloque el interruptor del modo editor en la posición “editor de texto enriquecido”.
  3. Escriba foo en el compositor.
  4. Presione el atajo de teclado Shift+Enter para agregar un “salto de línea suave”.
  5. Escriba bar en el compositor.
    :red_exclamation_mark: No agregue un salto de línea.
  6. Presione el atajo de teclado Ctrl+Shift+Home para seleccionar todo el contenido desde el final de la línea 2 hasta el inicio de la publicación.
  7. Haga clic en el botón </> en la barra de herramientas del compositor.

:bug: Cada una de las líneas seleccionadas se formateó individualmente en estilo en línea:

foo
bar

El comportamiento correcto habría sido poner el contenido en un solo bloque de código:

foo
bar

Contexto adicional

Elegí el enfoque de ingresar manualmente el contenido para la demostración con el fin de evitar introducir la complicación innecesaria de considerar el formato que puede estar presente en el contenido copiado, dependiendo de la fuente de la que se copie. Sin embargo, la falla también ocurre con el contenido pegado y las condiciones de contenido que no contienen un salto de línea forzado serán más probables con dicho contenido (ya que el usuario probablemente usará Enter al escribir, incluso si en realidad no querían un salto de línea forzado).


La falla no ocurre si usa “Seleccionar todo” / Ctrl+A para seleccionar el contenido.


El editor de Markdown tiene el comportamiento correcto de colocar siempre el contenido seleccionado en un bloque de código cuando se aplica el formato de “texto preformateado” retroactivamente a una selección de varias líneas.


Puedo reproducir la falla en try.discourse.org en “modo seguro”.


Informado originalmente en Why did the Forum functions change? - #37 by sterretje - Website and Forum - Arduino Forum

Tampoco parece suceder al seleccionar manualmente.

Hola @NateDhaliwal. ¿A qué te refieres con “seleccionar manualmente”?

¿Te refieres a seleccionar haciendo clic con el ratón? Si es así, el error todavía ocurre con ese método de selección:

manual-select

¿O con la tecla de flecha Shift? Si es así, el error todavía ocurre con ese método de selección:

manual-select2

No estoy seguro de esto, esta fue una excepción intencional, porque todavía tienes un solo párrafo con un salto de línea en este caso, y agregar una marca de código en línea debería ser posible en esta situación.

Incluso podemos considerar un cambio en este comportamiento, pero en realidad no es un error. /cc @lindsey

1 me gusta

Sí, ser consistente entre los modos de texto enriquecido y Markdown tiene sentido para mí.

1 me gusta