Incrustar una lista de temas de Discourse en otro sitio

No creo que esto sea posible. El código de Discourse que se utiliza para recuperar los temas solo carga las listas de temas más recientes. Los filtros disponibles que conozco para ordenar las listas son replies, views, activity y likes. Podrías intentar ordenar las listas con uno de estos filtros para seleccionar los mejores temas. Por ejemplo:

<d-topics-list discourse-url="http://localhost:3000" category="14" per-page="5" order="replies"></d-topics-list>

La fuente que se utiliza en el iframe está definida en Discourse. En la última versión de Discourse, estoy teniendo un problema al establecer la fuente cuando incrusto una lista de temas en mi sitio de WordPress. Estoy probando esto localmente, no en un sitio de producción, por lo que eso podría estar relacionado con el problema. Lo que estoy encontrando es que este estilo se está pasando para la fuente del iframe:

font-family: var(--font-family);

Ese estilo está definido en Discourse, pero WordPress no tiene acceso a la variable, por lo que la fuente se establece como Times New Roman en mi sitio. Investigaré más este problema. (Edición: el problema al establecer la fuente se debe a cambios recientes en Discourse. Lo solucionaremos.)

Esto puede ser complicado. El iframe que se crea está dentro del elemento d-topics-list que agregas a la página. Establecer el valor a un ancho explícito en el CSS de mi sitio web me está funcionando. Creo que esto podría mejorarse:

d-topics-list iframe{
	width: 700px !important;
	margin-left: auto;
	margin-right: auto;
}
6 Me gusta

En la esquina superior izquierda del iframe hay un número (por ejemplo, 110.5 ms) que enlaza a /embed/topics. ¿Hay alguna manera de eliminarlo?

Edición: La respuesta es que solo se muestra al “desarrollador de Discourse”: What is this box at the upper left displaying timings in milliseconds when I am logged in as admin? :slight_smile:

7 Me gusta

¡Hola! Estoy intentando incrustar publicaciones en un sitio de WordPress y ya he logrado que la función de incrustación funcione. ¿Existe alguna forma de hacer que la vista móvil sea un poco más atractiva? Si las publicaciones tienen imágenes, la disposición de las columnas con imágenes se aprieta demasiado. Un simple

@media (max-width: 768px) {
	.topics-list .topic-list-item .topic-column-wrapper {
	    flex-direction: column;
	}
}

resolvería este problema. ¿Hay alguna posibilidad de implementar algo así?

Saludos, M

3 Me gusta

Deberías poder agregar tu propio CSS personalizado aquí al editar tu tema. ¿Hay alguna razón por la que quieras que esté en el núcleo?

2 Me gusta

¡Oh, no me había dado cuenta de que esto cargaría el CSS de mi tema de Discourse! ¡Déjame probarlo y te vuelvo a contactar!

2 Me gusta

¡Hay una sección bajo Temas para incrustar con este propósito!

4 Me gusta

Hola, ya he incrustado una lista de temas en mi sitio web, pero ahora estoy intentando destacar un solo tema basado en una etiqueta. Logré incrustar otra lista (con per-page=1), pero el problema es que no puedo agregar clases CSS ni IDs, por lo que no hay ninguna diferencia entre la primera lista y esta.

Eso significa que incluso algo sencillo, como usar un color de fondo diferente para una de las listas incrustadas, es imposible.

¿Existe alguna solución alternativa?

Agradecería mucho tu ayuda.

2 Me gusta

¡Gracias @eviltrout, agregar ese código a “CSS incrustado” hizo el truco!

2 Me gusta

Actualmente no hay forma de agregar reglas CSS diferentes a distintos elementos incrustados. Solo puedes agregar estilos personalizados que se apliquen a todos los elementos incrustados.

4 Me gusta

Estoy viendo el siguiente error al incrustar los temas más recientes aquí: https://vceliquidrecipes.com/

includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:168 POST https://vapingcommunity.co.uk/mini-profiler-resources/results 404

(anonymous) @ includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:168
fetchResults @ includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:169
initPopupView @ includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:763
doInit @ includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:1050
sc.onload.sc.onreadystatechange @ includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:1065
load (async)
load @ includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:1061
init @ includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:1109
deferInit @ includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:1089
setTimeout (async)
deferInit @ includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:1085
init @ includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:1118
(anonymous) @ includes.js?v=f8924c1fd3fbe1787f0bed5c8998b636:1463

Mi código de incrustación se ve así:

<d-topics-list discourse-url="https://vapingcommunity.co.uk" status="open" order="replies" per-page="10"></d-topics-list>
2 Me gusta

Esos errores parecen provenir de mini profiler y probablemente no estén relacionados con lo que ve un usuario normal. Visité tu sitio y vi una lista de temas sin errores.

4 Me gusta

Ah, ¿así que eso es normal, aparecerían en los registros, correcto?

2 Me gusta

No estoy seguro de que sea normal, pero no hay motivo para preocuparse. La mayoría de los usuarios no tienen acceso a mini profiler, así que probablemente solo se muestra cuando tú lo haces.

3 Me gusta

¡Vale, gracias por tu ayuda! Se agradece mucho, como siempre. Sigue así con el gran trabajo.

2 Me gusta

Saludos, gracias por su arduo trabajo en esto.

En Firefox y Chrome, la lista no funciona como esperábamos. Aunque la configuramos para mostrar 10 temas, solo muestra 4.

En Chrome, observamos este error de JS cuando incrustamos la lista:

Uncaught DOMException: Failed to execute 'postMessage' on 'Window': Invalid target origin '' in a call to 'postMessage'.
    at u (https://rembetiko.gr/assets/embed-application-9cef8308c816fc1d83137e63d6c556c6cc2b68fe2b6e5ce16cca6766ba2c0ae4.js:1:105)
    at window.onload (https://rembetiko.gr/assets/embed-application-9cef8308c816fc1d83137e63d6c556c6cc2b68fe2b6e5ce16cca6766ba2c0ae4.js:1:515)

Curiosamente, esto no ocurre en Safari.

La lista está incrustada en este sitio web: https://rebetiko.sealabs.net (al final de la página, si quieren probarlo por sí mismos).

4 Me gusta

¿Alguien de ustedes puede reproducir este problema? :slight_smile:

CC: @JimPas, @simon, @Vaping_Community

3 Me gusta

Tienes 10 enlaces de temas en la página, pero 6 están ocultos por alguna razón; no tengo idea de ese error.

Agregar una altura al iframe funciona para mostrar los enlaces de temas ocultos.

d-topics-list iframe {
    height: 380px;
    width: 700px !important;
    margin-left: auto;
    margin-right: auto;
}
4 Me gusta

Yo también tuve un problema con esto. A veces se veía bien. Otras veces, la lista de temas se cortaba antes de tiempo (como si estuviera determinada por el número de píxeles en lugar de por el número de temas) y la fuente no era la esperada (no recuerdo los detalles). Cambié a usar el feed RSS de Discourse en su lugar. Solo uso Chrome y no sospeché que podría haber sido un problema solo con Chrome.

3 Me gusta

¡Hola!

¿Hay alguna forma de excluir temas de la lista?

2 Me gusta

¿Podrías usar etiquetas para eso? ¿Etiquetar los temas que quieres que aparezcan en la lista y filtrar por ellas?

5 Me gusta