El formato markdown de escritura continua mezclado con html hace que las imágenes no se carguen

Aquí hay un fragmento de una publicación creada en el sitio de discusión del Proyecto Fedora desde nuestro Blog Comunitario:

<p>Dinos qué opinas. ¿Lo usarías como tu página de inicio ahora que tiene un campo de búsqueda? ¿Cómo crees que podemos mejorarlo aún más?</p> ![](upload://na9g3dGvhEU753JEnGrz8xER4XS.png)<p class="has-text-align-center">O</p> ![](upload://def2zSzNAJtyuOorvTI2eV7rGW1.png)<p>Si estás interesado en ver más, consulta el <a href="https://discussion.fedoraproject.org/t/how-do-you-feel-about-the-new-design-of-start-fedoraproject-org-page/28689">borrador en Figma</a>. </p>

¿Ves cómo esas líneas de imagen en Markdown no comienzan realmente en líneas nuevas? Esto hace que las imágenes no se muestren. Si edito el mensaje y agrego un retorno de carro antes de cada ![], las imágenes se muestran correctamente.

¿Hay algo que pueda cambiar en nuestra configuración para solucionarlo? ¿O se trata simplemente de un error en el plugin?

¡Hola @mattdm!

¿Podrías compartir un enlace a la publicación original de WordPress y a la de Discourse con el extracto, si están publicadas públicamente?

El plugin WP Discourse básicamente solo pasa todo el HTML que encuentra en la publicación de WordPress a Discourse, el cual luego lo procesa para su inclusión en la publicación de Discourse. Por lo tanto, cómo se muestra el HTML en los fragmentos de publicaciones de WordPress en Discourse depende de dos cosas:

  1. La estructura original del HTML en WordPress (por ejemplo).
  2. Cómo el analizador de Markdown de Discourse interpreta el HTML para mostrarlo en las publicaciones de Discourse (por ejemplo).

Así que o bien se trata de una cuestión estructural del HTML de WordPress, que es algo esencialmente ajeno a WP Discourse o al propio Discourse, o bien es principalmente una cuestión de opinión sobre lo que debería hacer un analizador de HTML, aunque a veces hay mejoras claras que se pueden hacer en ese sentido.

Dicho esto, a veces es productivo profundizar en los detalles del análisis, así que si tienes más detalles sobre la estructura HTML de la publicación de WordPress, compártelos y lo investigaré más a fondo :slight_smile:

Tuve un problema similar en este post de Discourse, creado por el plugin de sondeo RSS (no el plugin de WordPress):

El ™ en esa primera línea era en realidad una etiqueta HTML <img>, y el plugin RSS lo trasladó correctamente. Sin embargo, el post se rompió cuando Discourse ejecutó su paso de “descargar copias locales de las imágenes”:

1 me gusta

Parece que el problema de @mattdm fue el mismo:

2 Me gusta

@simonk Gracias por esa investigación tan útil. Ambos podrían resolver el problema ingresando sus dominios de WP en la configuración del sitio dominios de descarga de imágenes deshabilitados.

Si deseas profundizar en el problema, es decir, intentar manejarlo de forma automatizada, la diferencia entre el caso de @mattdm y el tuyo señala la complejidad que existe allí. Él espera que el tratamiento que el navegador da a los elementos HTML <p> y <img> se traslade en forma de un salto de línea en el markdown, mientras que tú esperas casi (no exactamente) lo contrario, es decir, que la imagen se siga mostrando en línea con las mismas dimensiones que el elemento <img> existente en el HTML original.

Para más información sobre este aspecto del problema, puedes ver las publicaciones existentes al respecto, por ejemplo:

2 Me gusta

Gracias @simonk – sí, exactamente eso.

@angus, ¿cuál es la consecuencia de esto? ¿Sin imágenes en absoluto, o las imágenes enlazadas a las originales en el sitio de WordPress?

Espero que todos podamos estar de acuerdo en que algo que hace que Discourse muestre el markdown sin procesar en lugar de renderizarlo no puede ser correcto, especialmente cuando ese markdown _fue creado por el plugin. ¿Me estoy perdiendo algo aquí?

Las imágenes se enlazarán directamente a los originales.

Lo siento, estoy confundido; pensé que tu preocupación era sobre el salto de línea. ¿Estás diciendo que la versión publicada (es decir, cuando solo estás leyendo, no editando) contiene markdown sin procesar y que eso es lo que te preocupa?

El plugin solo envía el HTML sin procesar. El markdown se genera cuando se procesa la publicación en Discourse.

Prueba con dominios de descarga de imágenes deshabilitados y ve cómo te va.

A causa de la falta de un salto de línea, cuando Discourse muestra la página —a los usuarios, no a los editores—, en lugar de mostrar las imágenes donde aparece ![](upload://def2zSzNAJtyuOorvTI2eV7rGW1.png), simplemente ves ese texto literalmente. Es necesario que una persona intervenga y edite la publicación una vez que se haya publicado automáticamente, añadiendo saltos de línea antes de cada instancia de imagen para que estas realmente se muestren.

Puedo hacerlo, pero preferiría que las imágenes se descargaran; es una buena característica si el otro sitio está caído, si el blog cambia, etc. Además, no estamos cerca de nuestra capacidad de alojamiento, así que no me preocupa el espacio.

Entiendo, gracias por aclararlo. Honestamente, es poco probable que esto cambie en un futuro cercano por las razones discutidas en el tema que enlazo arriba. Por ejemplo:

Lo fundamental para nosotros es mantener la integridad del contenido, por lo que probablemente no se implemente la solución de las líneas nuevas.

El problema es que si intentáramos corregir automáticamente el problema que describes, podría generar otros inconvenientes. La solución actual consiste en agregar tu dominio de WordPress a la configuración del sitio dominios de descarga de imágenes deshabilitados.

Edición: He hecho una pequeña propuesta en ese sentido, pero es especulativa. Reitero que la solución actual es deshabilitar la descarga de imágenes para tu dominio de WP.

Realmente no entiendo lo fundamental aquí. ¿Cómo se mantiene la integridad del contenido con el comportamiento actual? Claramente no lo hace.

Parece que, si vas a reemplazar HTML con Markdown, hacerlo con un Markdown que se renderice correctamente es… la única respuesta correcta.

No es que estemos haciendo nada especial en el lado de WordPress; solo estamos usando el editor de bloques normal y la gente añade imágenes de la manera habitual en WordPress.

Procederé a usar la configuración “deshabilitar descarga de imágenes” para ver si eso nos ayuda, pero preferiría mucho, mucho que esto simplemente funcione.

Entiendo tu punto de vista y no digo que no sería ideal, pero convertir un motor de discusiones basado en Markdown en un motor de renderizado de HTML perfecto no es una tarea sencilla, incluso si los casos individuales parecen superficialmente simples (es decir, solo agregar una nueva línea).

La capacidad de renderizar el HTML completo de una entrada de blog en Discourse es una característica agradable, pero al final del día es solo una característica más en un sistema centrado en discusiones formateadas en Markdown.

Si sigues la discusión que enlacé, incluyendo la publicación reciente de David, verás que hay algunas vías posibles que podríamos tomar aquí. Quizás alguna funcione y resolverá este caso particular. Si hubiera una solución más sencilla, definitivamente estaría creando un PR para Discourse para abordarlo.

Avísame si tienes problemas al desactivar la descarga de imágenes y trabajaré contigo para solucionarlo también. Te informaré si encontramos un camino viable a seguir en el frente técnico.

2 Me gusta

¡Gracias! ¡Se lo agradezco mucho!

He actualizado la configuración y le informaré sobre cómo funciona.