Solução de problemas na integração de comentários do Ghost no Discourse

Um enorme agradecimento por isso, pois a nova configuração realmente transforma o Discourse em um sistema de comentários legítimo, especialmente para o uso de combinar os sistemas de comentários de vários blogs agregados em um único sistema de fórum. Dito isso, infelizmente estou enfrentando uma série de problemas.

Deixando de lado por enquanto as questões estéticas, vou começar apontando que estou tentando fazer isso funcionar com um blog Ghost, um blog que integra os sistemas de associação do Ghost e do Discourse com a integração Discourse on Ghost (DoG) (anunciada no fórum do Discourse aqui). Embora eu tenha certeza de que alguns dos problemas que estou enfrentando sejam diretamente causados pelo uso do DoG, outros não são, e outros… talvez?

O primeiro que vou apontar é a maneira como parece que não estou recebendo o sistema de comentários “completo”, mas sim algo como a metade dele.

Sim, após passar por todo o processo de cadastro com o DoG, eu realmente vejo o pop-up “Permitir acesso”, que eu aceito.

Mas, após isso, não apenas não vejo os botões “Responder” após cada comentário como vi nas postagens de demonstração do blog do Discourse (enquanto o ícone de link também é conspicuamente diferente do ícone de link que vejo no blog do Discourse), mas quando rolo até o final da postagem, vejo que, embora parte da nova configuração esteja presente, os botões Compartilhar e Responder que eu presumi que apareceriam à esquerda não estão lá, e o único botão Responder está à direita (com um ícone de seta diferente do visto no blog do Discourse, um ícone que acho que é um retorno ao sistema de incorporação original — embora isso possa ser apenas um reflexo do tema usado pelo fórum do Discourse).

Além disso, quando cliquei nesse botão Responder, fui levado para a página inicial do fórum do meu blog, em vez de ver a nova caixa de comentários integrada aparecer. Sendo assim, se eu clicar no botão de contagem de comentários “37/37” acima, de fato vejo a caixa aparecer, o botão “Ir para”, bem como a capacidade de “rolar” entre os comentários, embora, ao “rolar” até um comentário e soltar o botão do mouse, a posição na incorporação de comentários não se mova (a caixa apenas se fecha).

Para deixar claro, o código da minha incorporação é o seguinte:

<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>
            Comentários</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>

E sim, ativei a opção Modo de aplicativo completo nas configurações do fórum do meu site.

É possível que eu apenas tenha falhado em ativar alguma configuração boba ou esquecido de incluir uma linha de código, ou isso pode ser devido a alguma incompatibilidade entre o novo sistema completo de comentários e o DoG?

É exatamente para isso que o construímos!

Vale mencionar que isso é um requisito apenas para o Safari.

Isso é simplesmente o modo “não logado”, quando o usuário que visualiza o post do blog não está logado no Discourse.

Se, no mesmo navegador, funcionar corretamente em blog.discourse.org, então é muito provavelmente um problema relacionado à configuração personalizada do DoG.

Se por isso você quer dizer não apenas “um sistema de comentários legítimo”, mas mais especificamente uma configuração para “combinar os sistemas de comentários de vários blogs agregados em um único sistema de fórum” (como eu disse), então estou liderando essa iniciativa através do uso com o Ghost de várias formas. Com o DoG já construído, estou atualmente ajudando alguém a fazer o teste beta da funcionalidade de resumo de newsletter, que permitiria aos leitores selecionar uma variedade de tópicos e/ou autores para personalizar seu próprio e-mail semanal/mensal, seja de um único blog ou de um site agregador. O próximo passo será a própria funcionalidade de agregação, e este novo sistema completo de comentários do Discourse será a cereja do bolo. Espero que tudo esteja pronto em breve.

Isso faz sentido, pois eu estava fazendo login em navegadores diferentes para testar diferentes papéis de usuário e não havia percebido que aquele popup ocorria apenas no Safari. Mas, com você apontando isso e através de outro problema no Safari relacionado ao modo escuro (sobre o qual vou enviar uma mensagem ao Thiago no tópico separado), percebi que o problema de rolagem que eu tinha, onde soltar a barra de rolagem resulta em a posição não se mover, ocorre não apenas no Safari, mas apenas quando certos parâmetros são omitidos. Se, ao usar o Safari, você abrir uma postagem de blog compartilhada por Thiago, verá que a barra de rolagem funciona como esperado. A configuração dele é a seguinte:

fullApp: true,
lazyLoad: true, // desativar carregamento lento do iframe
lazyLoadMargin: '1500', // pixels antes da janela de visualização para iniciar o carregamento
dynamicHeight: true,
embedMinHeight: '400',
embedMaxHeight: '1500',

No entanto, quando você visita uma postagem de blog do meu site usando o Safari e tenta usar a barra de rolagem, você verá que ela não funciona. Soltar a barra de rolagem resulta em um pequeno pulo de alguns pixels para cima e para baixo, mas é só isso. Esta é a configuração do meu blog:

fullApp: true,
dynamicHeight: true,

Quando tentei substituir minha configuração pela de Thiago, o problema desapareceu.

Tudo isso está um pouco acima do meu “nível de conhecimento”, mas, após conversar com o criador do DoG, ele disse que acha que pode ser, na verdade, um problema no lado do Discourse. Como ele me disse:

Discordo, é algo relacionado à autenticação em um contexto incorporado. Se eu abrir a URL incorporada em uma nova aba, funciona. Mas, ao visualizar a incorporação, não funciona. Fiz um recarregamento forçado para garantir que não fosse um problema meu.

E estas são as duas imagens que ele compartilhou comigo:

Isso parece plausível para você?