Dépannage de l'intégration des commentaires Ghost sur Discourse

Un immense merci pour cela, car la nouvelle configuration transforme vraiment Discourse en un véritable système de commentaires, particulièrement pour l’utilisation consistant à combiner les systèmes de commentaires de plusieurs blogs agrégés en un seul système de forum. Cela dit, je rencontre malheureusement toute une série de problèmes.

En mettant de côté pour l’instant les problèmes cosmétiques, je commencerai par souligner que j’essaie de faire fonctionner cela avec un blog Ghost, un blog qui intègre les systèmes d’adhésion de Ghost et de Discourse via l’intégration Discourse on Ghost (DoG) (annoncée sur le forum de Discourse ici). Bien que je sois certain que certains des problèmes que je rencontre soient directement dus à l’utilisation de DoG, d’autres ne le sont pas, et d’autres… peut-être ?

Le premier point que je soulève est la manière dont je n’obtiens apparemment pas le système de commentaires « complet », mais plutôt la moitié.

Oui, après avoir suivi un processus d’inscription complet avec DoG, je vois bien la fenêtre contextuelle « Autoriser l’accès », que j’accepte.

Mais après cela, non seulement je ne vois pas les boutons « Répondre » après chaque commentaire comme je l’ai vu sur les articles de blog de démonstration de Discourse (alors que l’icône de lien est également nettement différente de l’icône de lien que je vois sur le blog de Discourse), mais lorsque je descends jusqu’en bas de l’article, je constate que, bien qu’une partie de la nouvelle configuration soit présente, les boutons Partager et Répondre que je pensais voir à gauche ne sont pas là, et que le seul bouton Répondre se trouve à droite (avec une icône de flèche différente de celle visible sur le blog de Discourse, une icône qui me semble être un rappel du système d’intégration original — bien que cela puisse simplement être un effet du thème utilisé par le forum de Discourse).

De plus, lorsque je clique sur ce bouton Répondre, je suis redirigé vers la page d’accueil du forum de mon blog au lieu de voir apparaître la nouvelle boîte de commentaires intégrée. Cela étant, si je clique sur le bouton de compteur de commentaires « 37/37 » ci-dessus, je vois effectivement la boîte apparaître, le bouton « Aller à », ainsi que la possibilité de « faire défiler » entre les commentaires, bien que lorsque je « fais défiler » jusqu’à un commentaire et relâche le bouton de la souris, la position dans l’intégration des commentaires ne bouge pas (la boîte se ferme simplement).

Pour être clair, mon code d’intégration est le suivant :

<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>
            Commentaires</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>

Et oui, j’ai activé l’option « Mode application complète » dans les paramètres du forum de mon site.

Est-il possible que j’aie simplement oublié d’activer un commutateur futile ou d’inclure une ligne de code, ou cela pourrait-il être dû à une sorte d’incompatibilité entre le nouveau système de commentaires complet et DoG ?

C’est exactement pour cela que nous l’avons conçu !

Il est utile de mentionner que cette exigence ne concerne que Safari.

Il s’agit simplement du mode « non connecté », lorsque l’utilisateur qui consulte l’article du blog n’est pas connecté à Discourse.

Si, sur le même navigateur, cela fonctionne correctement sur blog.discourse.org, alors il s’agit très probablement d’un problème lié à la configuration personnalisée de DoG.

Si par là vous entendez non seulement « un système de commentaires légitime », mais surtout une configuration permettant de « combiner les systèmes de commentaires de plusieurs blogs agrégés en un seul système de forum » (comme je l’ai formulé), alors je mène quelque peu cette initiative en l’utilisant avec Ghost de diverses manières. Avec DoG déjà construit, j’assiste actuellement quelqu’un dans les tests bêta de la fonctionnalité de résumé de newsletter, qui permettrait aux lecteurs de choisir parmi une variété de sujets et/ou d’auteurs pour personnaliser leur propre e-mail hebdomadaire ou mensuel, à partir d’un seul blog ou d’un site d’agrégation. La prochaine étape sera la fonctionnalité d’agrégation elle-même, et ce nouveau système complet de commentaires Discourse sera la cerise sur le gâteau. J’espère que tout sera prêt plus tôt que tard.

Cela a du sens, car je me connectais via différents navigateurs pour tester différents rôles d’utilisateur et je n’avais pas remarqué que cette fenêtre contextuelle n’apparaissait que dans Safari. Mais en raison de votre remarque, et d’un autre problème Safari lié au mode sombre (dont je vais parler à Thiago dans le fil de discussion séparé), j’ai remarqué que le problème de défilement que j’avais, où relâcher la barre de défilement entraîne un mouvement de position nul, ne se produit pas seulement dans Safari, mais uniquement lorsque certains paramètres sont omis. Si, en utilisant Safari, vous ouvrez un article de blog partagé par Thiago, vous verrez que la barre de défilement fonctionne comme prévu. Sa configuration est la suivante :

fullApp: true,
lazyLoad: true, // désactiver le chargement différé de l'iframe
lazyLoadMargin: '1500', // pixels avant la zone visible pour commencer le chargement
dynamicHeight: true,
embedMinHeight: '400',
embedMaxHeight: '1500',

Cependant, lorsque vous visitez un article de blog de mon site en utilisant Safari et que vous essayez d’utiliser la barre de défilement, vous constaterez qu’elle ne fonctionne pas. Relâcher la barre de défilement entraîne un petit saut de quelques pixels vers le haut et vers le bas, mais c’est tout. Voici la configuration de mon blog :

fullApp: true,
dynamicHeight: true,

Lorsque j’ai essayé de remplacer ma configuration par celle de Thiago, le problème a disparu.

Tout cela est un peu au-dessus de ma « catégorie de salaire », mais après avoir parlé au créateur de DoG, il pense qu’il pourrait s’agir en réalité d’un problème côté Discourse. Comme il me l’a déclaré :

Je ne suis pas d’accord, c’est quelque chose lié à l’authentification dans un contexte intégré. Si j’ouvre l’URL intégrée dans un nouvel onglet, cela fonctionne. Mais si je consulte l’intégration, cela ne fonctionne pas. J’ai effectué un rafraîchissement forcé pour m’assurer qu’il ne s’agit pas d’un problème de mon côté.

Et voici les deux images qu’il a partagées avec moi :

Cela vous semble-t-il plausible ?