Solucionando problemas de la integración de comentarios de Ghost en Discourse

Muchas gracias por esto, ya que la nueva configuración convierte a Discourse en un sistema de comentarios legítimo, especialmente para el uso de combinar los sistemas de comentarios de varios blogs agregados en un único sistema de foro. Dicho esto, lamentablemente estoy teniendo una serie de problemas.\n
Dejando de lado por el momento los problemas estéticos, comenzaré señalando que estoy intentando hacer que esto funcione con un blog Ghost, un blog que integra los sistemas de membresía de Ghost y Discourse con la integración Discourse on Ghost (DoG) (anunciada en el foro de Discourse aquí). Aunque estoy seguro de que algunos de los problemas que tengo se deben directamente al uso de DoG, otros no lo son, y otros… ¿quizás?

El primero que señalaré es la forma en que parece que no estoy obteniendo el sistema de comentarios “completo”, sino más bien la mitad de él.

Sí, después de completar todo el proceso de registro con DoG, sí veo la ventana emergente “Permitir acceso”, a la cual acepto.

Pero después de eso, no solo no veo los botones “Responder” después de cada comentario como vi en las publicaciones del blog de demostración de Discourse (mientras que el icono de enlace también es notablemente diferente del icono de enlace que veo en el blog de Discourse), sino que cuando hago scroll hasta la parte inferior de la publicación, veo que, aunque parte de la nueva configuración está presente, los botones Compartir y Responder que presumiblemente aparecerían a la izquierda no están allí, y el único botón Responder está a la derecha en su lugar (con un icono de flecha diferente al que se ve en el blog de Discourse, un icono que creo que es un recordatorio del sistema de incrustación original, aunque eso podría ser simplemente un resultado del tema que utiliza el foro de Discourse).

Además, cuando hago clic en ese botón Responder, soy redirigido a la página de inicio del foro de mi blog en lugar de ver aparecer el nuevo cuadro de comentarios integrado. Dicho esto, si hago clic en el botón de conteo de comentarios “37/37” de arriba, sí veo que aparece el cuadro, el botón “Saltar a”, así como la capacidad de “desplazarse” entre comentarios, aunque cuando me “desplazo” a un comentario y suelto el botón del mouse, la posición en la incrustación de comentarios no se mueve (el cuadro simplemente se cierra).

Para ser claro, el código de mi incrustación es el siguiente:

<section itemscope itemtype="http://schema.org/UserComments" class="post-item post-comments" id="comments" loading="lazy">
    <div class="wrapper post-wrapper{{#is "post"}} no-post-border{{/is}}">
        <h2 class="comments-title">
            <a href="#comments" class="heading-link">
                <svg aria-hidden="true" class="aal_svg" version="1.1" viewBox="0 0 16 16">
                    <path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path>
                </svg>
            </a>
            Comentarios</h2>
        <div id='discourse-comments'></div>
        <script type="text/javascript">
            if (window.location.pathname.indexOf('/p/') < 0) {
                DiscourseEmbed = {
                    discourseUrl: 'https://ff2f.discourse.group/',
                    discourseEmbedUrl: '{{url absolute="true"}}',
                    fullApp: true,
                    dynamicHeight: true,
                    };
                (function() {
                    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>
    </div>
</section>

Y sí, tengo el interruptor de modo de aplicación completa activado en la configuración del foro de mi sitio.

¿Es posible que simplemente haya olvidado activar algún interruptor tonto o que haya omitido una línea de código, o podría deberse a algún tipo de incompatibilidad entre el nuevo sistema de comentarios completo y DoG?

¡Eso es exactamente para lo que lo hemos creado!

Vale la pena mencionar que este es un requisito exclusivo de Safari.

Eso es simplemente el modo “no iniciado sesión”, cuando el usuario que visualiza la entrada del blog no ha iniciado sesión en Discourse.

Si, en el mismo navegador, funciona bien en blog.discourse.org, entonces es muy probable que sea un problema relacionado con la configuración personalizada de DoG.

Si con eso te refieres no solo a “un sistema de comentarios legítimo”, sino más bien a una configuración para “combinar los sistemas de comentarios de varios blogs agregados en un único sistema de foro” (como lo expresé), entonces estoy liderando en cierta medida esa iniciativa mediante su uso con Ghost de diversas maneras. Con DoG ya construido, actualmente estoy ayudando a alguien a realizar pruebas beta de la funcionalidad de resumen de boletín, que permitiría a los lectores seleccionar entre una variedad de temas y/o autores para personalizar su propio correo electrónico semanal o mensual, ya sea desde un solo blog o desde un sitio agregador. Lo siguiente será la propia funcionalidad de agregación, y este nuevo sistema completo de comentarios de Discourse será la cereza del pastel. Espero que todo esté listo antes de lo esperado.

Eso tiene sentido, ya que estaba iniciando sesión desde diferentes navegadores para probar distintos roles de usuario y no había notado que esa ventana emergente ocurría únicamente en Safari. Pero, dado que lo has señalado, y tras otro problema en Safari relacionado con el modo oscuro (sobre el cual voy a escribirle a Thiago en el hilo dividido), he notado que el problema de desplazamiento que tenía, donde al soltar la barra de desplazamiento la posición no se mueve, ocurre no solo en Safari, sino solo cuando se omiten ciertos parámetros. Si mientras usas Safari abres una entrada de blog que Thiago compartió, verás que la barra de desplazamiento funciona como se espera. Su configuración es la siguiente:

fullApp: true,
lazyLoad: true, // desactivar la carga diferida del iframe
lazyLoadMargin: '1500', // píxeles antes del área visible para comenzar a cargar
dynamicHeight: true,
embedMinHeight: '400',
embedMaxHeight: '1500',

Sin embargo, cuando visitas una entrada de blog de mi sitio usando Safari y tratas de usar la barra de desplazamiento, verás que no funciona. Al soltar la barra de desplazamiento se produce un pequeño salto de unos pocos píxeles hacia arriba y hacia abajo, pero eso es todo. Esta es la configuración de mi blog:

fullApp: true,
dynamicHeight: true,

Cuando intenté reemplazar mi configuración con la de Thiago, el problema desapareció.

Todo esto está un poco por encima de mi “nivel salarial”, pero después de hablar con el creador de DoG, él dice que cree que en realidad podría ser un problema del lado de Discourse. Como me declaró:

No estoy de acuerdo, es algo relacionado con la autenticación en un contexto incrustado. Si abro la URL incrustada en una nueva pestaña, funciona. Pero si veo la incrustación, no funciona. He realizado una recarga forzada para asegurarme de que no sea un problema mío.

Y estas son las dos imágenes que compartió conmigo:

¿Te parece plausible?