Markdown coincidental en contenido formateado pegado al editor de texto enriquecido renderizado al publicar

Prioridad/Severidad:

Medio

Plataforma:

Sistema Operativo

  • Windows 11

Navegador

  • Google Chrome 141.0.7390.123

Discourse

fb4bd7951aa6ae8c814df702807c12ccb77bd3fd

Descripción:

El “editor de texto enriquecido” está diseñado para proporcionar una experiencia “WYSIWYG” (lo que ves es lo que obtienes), donde el contenido visto en el editor se representa exactamente como aparecerá en la publicación publicada.

El texto copiado de algunas fuentes puede almacenarse en el portapapeles en un formato con estilo (tipo text/html) además de texto plano (text/plain).

Cuando se pega texto en el editor, si hay un tipo de datos con formato presente en el portapapeles, se utilizan esos datos en lugar del tipo de texto plano.

Debido a la naturaleza mínima de la sintaxis, es común que el texto contenga contenido que casualmente se asemeja a la sintaxis de Markdown.

:bug: La publicación publicada se representa de manera diferente a lo que se muestra en el “editor de texto enriquecido” cuando el contenido pegado con formato contiene cierta sintaxis de Markdown coincidente.

Pasos para reproducir:

Marcado de lista coincidente

  1. Cree un archivo HTML con el siguiente contenido:
    <html>
      <body>
    <br />- foo
      </body>
    </html>
    
  2. Abra el archivo en su navegador web.
  3. Copie el contenido de la página web.
  4. Abra el editor de publicaciones.
  5. Ponga el editor en modo “editor de texto enriquecido”.
  6. Pegue el contenido copiado en el editor.
    :slightly_smiling_face: El texto se pegó literalmente, en lugar de renderizarse como una lista:

    - foo

  7. Publique la entrada.

:bug: En lugar de coincidir con lo que se vio en el editor, el contenido se ha renderizado como una lista desordenada:

  • foo

Marcado de bloque de código coincidente

  1. Cree un archivo HTML con el siguiente contenido:
    <html>
      <body>
        <span style="white-space: pre">    foo</span>
      </body>
    </html>
    
  2. Abra el archivo en su navegador web.
  3. Copie el contenido de la página web.
  4. Abra el editor de publicaciones.
  5. Ponga el editor en modo “editor de texto enriquecido”.
  6. Pegue el contenido copiado en el editor.
    :slightly_smiling_face: El texto se pegó literalmente, en lugar de renderizarse como un bloque de código:

        foo

  7. Publique la entrada.

:bug: En lugar de coincidir con lo que se vio en el editor, el contenido se ha renderizado como un bloque de código:

foo

Marcado de bloque de código coincidente con marcado BBCode coincidente

  1. Cree un archivo HTML con el siguiente contenido:
    <html>
      <body>
        <span style="white-space: pre">    [foo]</span>
      </body>
    </html>
    
  2. Abra el archivo en su navegador web.
  3. Copie el contenido de la página web.
  4. Abra el editor de publicaciones.
  5. Ponga el editor en modo “editor de texto enriquecido”.
  6. Pegue el contenido copiado en el editor.
    :slightly_smiling_face: El texto se pegó literalmente:

        [foo]

  7. Publique la entrada.

:bug: En lugar de coincidir con lo que se vio en el editor, el contenido se ha renderizado como un bloque de código, con barras invertidas añadidas a los corchetes:

\[foo\]

Contexto adicional:

Creo que es correcto que el editor de texto enriquecido ignore el marcado de Markdown aparente presente en el contenido pegado que tiene el tipo “text/html”. Cualquier formato intencional en dicho contenido se definirá mediante etiquetas HTML, por lo que es muy probable que el contenido que se asemeja a Markdown sea coincidente en lugar de ser marcado real. Por lo tanto, el error aquí es que la sintaxis de Markdown coincidente se está renderizando al publicar; no que no se renderice en el editor.


Puedo reproducir el error en try.discourse.org en “modo seguro”.

1 me gusta