Se dividió una publicación en un nuevo tema: Incrustar Discourse usando external_id
Para un caso de uso de sitio de documentación (cientos/miles de páginas), ¿es posible no hacer que Discourse genere el tema cuando un usuario visita las páginas, sino cuando quiere dejar un comentario, de la forma en que funciona Giscus?
Esto ahora es “Lista de permitidos”.
Esto ahora es “Nombre de usuario para la creación de temas”.
Aparte de eso, ¿hay alguna forma de probar la integración desde http://localhost? Obtengo este error en la consola debido a la falta de https:
Se denegó el enmarcado de ‘https://forum.weaviate.io/’ porque un antepasado viola la siguiente directiva de Política de Seguridad de Contenido: “frame-ancestors ‘self’ https://localhost:3000”.
¡Hola! Gracias por informar. Actualicé algunas partes de la guía, pero es posible que deba revisarse en profundidad para garantizar que esté correctamente actualizada y funcionando.
Aparte de eso, ¿hay alguna forma de probar la integración desde http://localhost?
Es posible que necesites usar un servicio como ngrok.
Editar: resulta que usar url_escape en la URL incrustada (ya que uso Liquid para insertar automáticamente la URL correcta) rompe la incrustación. ¡Ups ![]()
¡Hola! Estaba planeando usar software de foros para que sirviera también como sección de comentarios de mi blog, así que cuando descubrí que no solo tenéis una forma de hacer eso, sino que además está funcionando actualmente en el sitio web de alguien, ¡mi mente explotó
!
Sin embargo, al intentar implementar este sistema en mi sitio, aparece un mensaje de error en mi sitio y esto apareció en los registros de errores de mi foro:
Mensaje de error
Message (2 copies reported)
Addressable::URI::InvalidURIError (Cannot assemble URI string with ambiguous path: 'https://eleboog.com/posts/jekyll-to-gemini/')
lib/url_helper.rb:157:in `normalize_with_addressable'
lib/url_helper.rb:94:in `normalized_encode'
app/models/embeddable_host.rb:50:in `url_allowed?'
app/controllers/embed_controller.rb:84:in `comments'
app/controllers/application_controller.rb:418:in `block in with_resolved_locale'
app/controllers/application_controller.rb:418:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:369:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'
Backtrace
addressable (2.8.4) lib/addressable/uri.rb:2337:in `to_s'
addressable (2.8.4) lib/addressable/uri.rb:856:in `initialize'
addressable (2.8.4) lib/addressable/uri.rb:697:in `new'
addressable (2.8.4) lib/addressable/uri.rb:697:in `normalized_encode'
lib/url_helper.rb:157:in `normalize_with_addressable'
lib/url_helper.rb:94:in `normalized_encode'
app/models/embeddable_host.rb:50:in `url_allowed?'
app/controllers/embed_controller.rb:84:in `comments'
actionpack (7.0.4.3) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.4.3) lib/abstract_controller/base.rb:215:in `process_action'
Env
HTTP HOSTS: forums.eleboog.com
Estoy usando Jekyll para alojar mi blog y alojar mis foros junto con él usando hosts virtuales de nginx. Tengo eleboog.com como host permitido y /posts/.* como mi lista de rutas permitidas. ¿Alguna idea de qué podría estar causando este problema? ¡Muchas gracias!
Me quedé atascado en el medio, pero después de algunas modificaciones lo conseguí. Estoy trabajando con mi blog de Ghost y Discourse.
Aquí está lo que añadí en el archivo post.hbs para todas mis publicaciones.
{{#post}}
<div>
<div>
{{> "comments"}}
{{!-- {{#has tag="25"}} --}}
<div id='discourse-comments'></div>
<meta name='discourse-username' content='eviltrout'>
<script type="text/javascript">
DiscourseEmbed = {
discourseUrl: 'https://discourse-1-0.cloudclusters.net/',
discourseEmbedUrl : 'https://www.mydomain.com{{ post.url }}',
discourseReferrerPolicy: 'strict-origin-when-cross-origin'
//topicId: '25'
};
(function () {
console.log("DiscourseEmbed", DiscourseEmbed);
var d = document.createElement('script');
d.type = 'text/javascript';
d.async = true;
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
})();
</script>
{{!-- {{/has}} --}}
</div>
</div>
{{/post}}
</div>
</section>
Código del archivo Ghost post.hbs pegado bajo el comentario: Screenshot by Lightshot
Y esta es mi Configuración de incrustación: Screenshot by Lightshot
=====
Me sale el primer comentario como listado (Screenshot by Lightshot).
¿Cómo puedo eliminar eso?
No se publica ninguna entrada en el tema de Discourse, solo el enlace de la publicación original: Screenshot by Lightshot
¿Alguien sabe cómo puedo publicar el contenido de mi blog en este tema… igual que el OP?
¿Qué hacer cuando sigue mostrando “Cargando discusión”?
Intenta abrir el inspector web de tu navegador en la pestaña Consola y comprueba si hay algún error. Si publicas los errores aquí, alguien podría ayudarte.
También, intenta abrir el inspector web de tu navegador en la pestaña Elementos y busca ‘discourse-comments’. Eso debería resaltar un elemento en el marcado. Directamente debajo del elemento <div id="discourse-comments">, debería haber una etiqueta script. Echa un vistazo al contenido de esa etiqueta para ver si hay errores obvios.
Quizás lo primero que debes comprobar es asegurarte de que el registro Host que has configurado para el dominio en Discourse está publicando las publicaciones en una categoría pública.
Si intentas publicar publicaciones en una categoría protegida, o en un sitio de Discourse que requiere que los usuarios inicien sesión para ver contenido, es probable que obtengas errores.
Gracias Simon por tu ayuda.
La consola comenzó vacía, pero después de un tiempo muestra este error:
Editar:
Descubrí después de mucha solución de problemas que necesitaba incluir “www.” en el discourseEmbedUrl.
¡Hola a todos! Un par de preguntas:
- ¿Alguna idea de por qué la opción “Los temas importados no se listarán hasta que haya una respuesta” podría seguir activándose cada vez que hago clic en “Guardar configuración de incrustación”, incluso después de haberla deseleccionado?
- Al ver una entrada de blog en Chrome, veo lo siguiente donde deberían mostrarse los comentarios incrustados de Discourse:
Y en Safari, solo hay un bloque en blanco/blanco en este espacio, sin ningún mensaje.
He iniciado sesión en la instalación de Discourse en ambos navegadores mientras pruebo esto. El blog está en un dominio diferente al de la instalación de Discourse.
¡Gracias de antemano!
¿Alguna idea de por qué la opción “Los temas importados no se listarán hasta que haya una respuesta” podría seguir activándose cada vez que hago clic en “Guardar configuración de incrustación”?
No sé por qué podría estar sucediendo eso. ¿Qué pasa si vas a la página de configuración de tu sitio y cambias el valor de la configuración del sitio embed unlisted?
Se supone que esa configuración y la configuración “Los temas importados no se listarán…” se reflejan mutuamente.
Al ver una entrada de blog en Chrome, veo lo siguiente donde deberían mostrarse los comentarios incrustados de Discourse:
He iniciado sesión en la instalación de Discourse en ambos navegadores mientras pruebo esto. El blog está en un dominio diferente al de la instalación de Discourse.
Siempre que no incrustes los temas en una categoría privada de Discourse, tener el blog en un dominio diferente al de Discourse no debería causar problemas.
El error que veo en esta entrada de blog (Break Out Of Your Workout Rut With 8 AMRAP Fitness Challenges) es:
Se denegó el frame de 'https://community.irla.co/' porque un ancestro infringe la siguiente directiva de Política de Seguridad de Contenido: "frame-ancestors 'self' https://antsylabs.com https://antsylabs.com".
¿Tienes el dominio completo (incluido el www) configurado en el registro Host de tu sitio de Discourse? Parece que solo has añadido antsylabs.com a esa configuración.
No sé por qué estaría sucediendo eso. ¿Qué sucede si vas a la página de configuración de tu sitio y cambias el valor de la configuración del sitio
embed unlisted?
¡Este era el problema, gracias!
¿Tienes el dominio completo (incluyendo
www) configurado en el registro Host en tu sitio de Discourse? Parece que solo agregasteantsylabs.coma esa configuración.
Tienes toda la razón. Había omitido el ‘www’ de este registro, y agregarlo al registro host hace que los comentarios incrustados se muestren perfectamente.
¡Muchas gracias por tu ayuda! Lo aprecio sinceramente.
¿Es posible mostrar los comentarios incrustados en orden cronológico inverso (primero los más nuevos, al final los más antiguos)?
¿Es posible mostrar los comentarios incrustados en orden cronológico inverso?
Actualmente no es posible. Sería genial si los comentarios incrustados mostraran algunas opciones seleccionables por el usuario para filtrar comentarios. Por ejemplo, “todos”, “recientes”, “mejores”.
¿Es posible que el rastreador no pueda manejar las vocales con diéresis alemanas, como Ä, Ö, Ü?
Títulos como “Ich würde” terminan en “Ich würde”.
Tengo bastantes preguntas y agradecería si alguien pudiera ayudarme.
Estoy intentando incrustar comentarios en un sitio web NextJS con exportaciones estáticas, es decir, cuando el sitio esté en línea, todas las páginas estarán pregeneradas, por lo que aunque he visto comentarios en otros lugares de que discourse no puede rastrear SPA, mi entendimiento es que debería poder manejar mi sitio web.
Imaginemos que mi foro está en forum.domain.com y mi sitio web donde quiero incrustar comentarios está en site.domain.com. Hemos agregado todos los scripts relacionados con los comentarios y vemos un “Cargando discusión” eterno dentro de un iframe.
Si abro desde Safari, veo el siguiente error en la consola:
Unable to post message to https://forum.domain.com. Recipient has origin https://site.domain.com.
Lo que parece ser un problema de CORS, pero agregué tanto site.domain.com como www.site.domain.com a la configuración de incrustación en mi instancia de Discourse.
Por alguna razón, no veo ese error en la consola de Firefox, solo veo
Y finalmente, si voy a https://forum.domain.coom/embed/comments?embed_url=https%3A%2F%2Fsite.domain.com%2Fpath%2Fto%2Fpage, también veo la discusión cargando eternamente. Lo que me hace pensar que el problema está de alguna manera en el lado de Discourse, y no en mi sitio web. A menos que entienda mal cómo funciona la incrustación, así que si alguien tiene algún consejo, lo agradecería mucho.
Lo interesante, y quizás relacionado, es que he agregado incrustaciones en dos tipos de páginas: site.domain.com/path/to/page y site.domain.com/longer/path/to/page, y no he agregado la etiqueta de comentarios a la página de inicio. Pero en mi discourse, veo un tema dedicado a la página de inicio de site.domain.com, que, por alguna razón, parece actualizarse cada vez que un usuario visita un sitio web.

así que ahora tiene una cantidad insana de ediciones. Parte del texto incrustado contiene una dirección de correo electrónico, que se muestra en discourse como [email protected] y todas las ediciones se muestran como si modificaran esa parte.
Hola,
Me gustaría conocer tu opinión sobre este “error”: Embed: dates are not localized - #9 by weber-s
¿Tendría sentido tener una configuración para la localización de fechas? Porque ahora mismo está en inglés, sin posibilidad de personalización.
Tenemos un escenario en el que no queda bien que la gente comparta imágenes/capturas de pantalla en sus publicaciones para publicaciones que están incrustadas en otra página.
¿Cuál sería una buena solución para ocultar imágenes en publicaciones que están incrustadas en otro sitio?
Hay una pestaña CSS dedicada en los temas para esta función, por lo que ocultar imágenes dentro del cuerpo de la publicación con CSS es la forma más rápida de lograrlo.







