Un message a été divisé en un nouveau sujet : Intégrer Discourse en utilisant external_id
Pour un cas d’utilisation de site de documentation (des centaines/milliers de pages), est-il possible de ne pas faire générer le sujet par Discourse lorsqu’un utilisateur visite les pages, mais plutôt lorsqu’il souhaite laisser un commentaire, à la manière de Giscus ?
Ceci est maintenant « Liste d’autorisation ».
Ceci est maintenant « Nom d’utilisateur pour la création de sujet ».
En dehors de cela, existe-t-il un moyen de tester l’intégration depuis http://localhost ? J’obtiens cette erreur dans la console en raison du manque de https :
Refusé de cadrer « https://forum.weaviate.io/ » car un ancêtre viole la directive de politique de sécurité du contenu suivante : « frame-ancestors ‘self’ https://localhost:3000 ».
Salut ! Merci de votre signalement. J’ai mis à jour certaines parties du guide, mais il faudra peut-être les examiner en profondeur pour s’assurer qu’elles sont correctement mises à jour et fonctionnelles.
En dehors de cela, existe-t-il un moyen de tester l’intégration depuis http://localhost ?
Vous devrez peut-être utiliser un service tel que ngrok.
Edit : il s’avère que l’utilisation de url_escape sur l’URL intégrée (puisque j’utilise Liquid pour insérer automatiquement la bonne URL) casse l’intégration. Oups ![]()
Salut ! Je prévoyais d’utiliser un logiciel de forum pour qu’il serve également de section de commentaires à mon blog. Quand j’ai découvert que non seulement vous aviez un moyen de faire cela, mais que c’était même en direct sur le site de quelqu’un, j’ai été époustouflé ![]()
Cependant, en essayant de mettre en œuvre ce système sur mon site, un message d’erreur s’affiche sur mon site, et ceci est apparu dans les journaux d’erreurs de mon forum :
Message d'erreur
Message (2 copies signalées)
Addressable::URI::InvalidURIError (Impossible d'assembler la chaîne URI avec un chemin ambigu : '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
J’utilise Jekyll pour héberger mon blog et je l’héberge avec mon forum en utilisant des hôtes virtuels nginx. J’ai eleboog.com comme hôte autorisé et /posts/.* comme liste d’autorisation de chemins. Des idées sur ce qui pourrait causer ce problème ? Merci beaucoup !
J’étais coincé entre les deux, mais après quelques modifications, j’ai réussi. Je travaille avec mon blog Ghost et Discourse.
Voici ce que j’ai ajouté dans le fichier post.hbs pour tous mes articles :
{{#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>
Code du fichier Ghost post.hbs collé sous le commentaire : Screenshot by Lightshot
Et voici mes paramètres intégrés : Screenshot by Lightshot
=====
Je vois le tout premier commentaire listé ( Screenshot by Lightshot ).
Comment puis-je le supprimer ?
Aucun article n’est publié sur le sujet Discourse, seulement le lien de l’article original : Screenshot by Lightshot
Quelqu’un sait comment je peux publier le contenu de mon blog dans ce sujet… Comme l’OP.
Que faire quand il continue d’afficher « Chargement de la discussion » ?
Essayez d’ouvrir l’inspecteur web de votre navigateur, onglet Console, et vérifiez s’il y a des erreurs. Si vous publiez les erreurs ici, quelqu’un pourra peut-être vous aider.
Essayez également d’ouvrir l’inspecteur web de votre navigateur, onglet Éléments, et recherchez « discourse-comments ». Cela devrait mettre en surbrillance un élément dans le balisage. Juste sous l’élément <div id="discourse-comments">, il devrait y avoir une balise script. Regardez le contenu de cette balise pour des erreurs évidentes.
Peut-être que la première chose à vérifier est de vous assurer que l’enregistrement d’hôte que vous avez configuré pour le domaine sur Discourse publie des messages dans une catégorie publique.
Si vous tentez de publier des messages dans une catégorie protégée, ou sur un site Discourse qui exige que les utilisateurs se connectent pour voir le contenu, vous obtiendrez probablement des erreurs.
Merci Simon de votre aide.
La console a démarré vide, mais après un moment, elle affiche cette erreur :
Modification :
Après de nombreux dépannages, j’ai compris que je devais inclure « www. » dans le discourseEmbedUrl.
Salut tout le monde ! Quelques questions :
- Des idées sur la raison pour laquelle l’option « Les sujets importés seront non répertoriés jusqu’à ce qu’il y ait une réponse » pourrait se réactiver à chaque fois que je clique sur « Enregistrer les paramètres d’intégration », même après l’avoir désélectionnée ?
- En consultant un article de blog dans Chrome, je vois ceci là où les commentaires Discourse intégrés devraient s’afficher :
Et dans Safari, il y a juste un bloc blanc/vide à cet endroit, sans aucun message.
Je suis connecté à l’installation Discourse sur les deux navigateurs pendant que je teste cela. Le blog est sur un domaine différent de l’installation Discourse.
Merci d’avance !
Des idées sur la raison pour laquelle l’option « Les sujets importés ne seront pas répertoriés tant qu’il n’y aura pas de réponse » pourrait être réactivée à chaque fois que je clique sur « Enregistrer les paramètres d’intégration » ?
Je ne sais pas pourquoi cela se produirait. Que se passe-t-il si vous allez sur la page des paramètres de votre site et modifiez la valeur du paramètre de site embed unlisted ?
Ce paramètre, et le paramètre « Les sujets importés ne seront pas répertoriés… » sont censés se refléter mutuellement.
En consultant un article de blog dans Chrome, je vois ce qui suit là où les commentaires Discourse intégrés devraient être affichés :
Je suis connecté à l’installation Discourse sur les deux navigateurs pendant que je teste cela. Le blog est sur un domaine différent de l’installation Discourse.
Tant que vous n’intégrez pas les sujets dans une catégorie Discourse privée, le fait que le blog soit sur un domaine différent de Discourse ne devrait pas poser de problème.
L’erreur que je vois sur cet article de blog (Break Out Of Your Workout Rut With 8 AMRAP Fitness Challenges) est :
Refused to frame 'https://community.irla.co/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self' https://antsylabs.com https://antsylabs.com".
Avez-vous le domaine complet (y compris le www) défini sur l’enregistrement Hôte de votre site Discourse ? Il semble que vous ayez seulement ajouté antsylabs.com à ce paramètre.
Je ne sais pas pourquoi cela se produirait. Que se passe-t-il si vous accédez à la page des paramètres de votre site et modifiez la valeur du paramètre de site
embed unlisted?
C’était le problème, merci !
Avez-vous le nom de domaine complet (y compris
www) défini sur l’enregistrement Host de votre site Discourse ? Il semble que vous n’ayez ajouté queantsylabs.comà ce paramètre.
Vous avez tout à fait raison. J’avais omis le « www » de cet enregistrement, et l’ajouter à l’enregistrement hôte permet d’afficher parfaitement les commentaires intégrés.
Merci beaucoup pour votre aide ! Je l’apprécie sincèrement.
Est-il possible d’afficher les commentaires intégrés dans l’ordre chronologique inverse (les plus récents en premier, les plus anciens en dernier) ?
Est-il possible d’afficher les commentaires intégrés dans l’ordre chronologique inverse ?
Ce n’est pas possible actuellement. Ce serait formidable si les commentaires intégrés affichaient des options sélectionnables par l’utilisateur pour filtrer les commentaires. Par exemple, « tous », « récents », « meilleurs ».
Est-il possible que le robot d’exploration ne puisse pas gérer les umlauts allemands, comme Ä, Ö, Ü ? Les titres comme « Ich würde » se retrouvent en « Ich würde ».
J’ai pas mal de questions et j’apprécierais si quelqu’un pouvait m’aider.
J’essaie d’intégrer des commentaires sur un site Web NextJS avec des exportations statiques, c’est-à-dire qu’au moment où le site est en ligne, toutes les pages sont pré-générées. Donc, bien que j’aie vu des commentaires ailleurs selon lesquels Discourse ne peut pas scraper les SPA, je comprends qu’il devrait être capable de gérer mon site Web.
Imaginons que mon forum soit sur forum.domain.com et que mon site Web où je veux intégrer des commentaires soit sur site.domain.com. Nous avons ajouté tous les scripts liés aux commentaires et voyons un “Chargement de la discussion” éternel dans un iframe.
Si j’ouvre depuis Safari, je vois l’erreur suivante dans la console :
Impossible de poster un message à https://forum.domain.com. Le destinataire a l'origine https://site.domain.com.
Ce qui semble être un problème CORS, mais j’ai ajouté site.domain.com et www.site.domain.com aux paramètres d’intégration sur mon instance Discourse.
Pour une raison quelconque, je ne vois pas cette erreur dans la console Firefox, je vois seulement
Et enfin, si je vais sur https://forum.domain.coom/embed/comments?embed_url=https%3A%2F%2Fsite.domain.com%2Fpath%2Fto%2Fpage, je vois aussi la discussion se charger éternellement. Ce qui me fait penser que le problème vient d’une manière ou d’une autre de Discourse, et non de mon site Web. À moins que je ne comprenne mal comment fonctionne l’intégration, donc si quelqu’un a des conseils, j’apprécierais grandement.
Ce qui est intéressant, et peut-être lié, c’est que j’ai ajouté l’intégration sur deux types de pages : site.domain.com/path/to/page et site.domain.com/longer/path/to/page, et je n’ai pas ajouté la balise de commentaires à la page d’accueil. Mais sur mon Discourse, je vois un sujet dédié à la page d’accueil de site.domain.com, qui, pour une raison quelconque, semble être mis à jour chaque fois qu’un utilisateur visite un site Web.

donc maintenant, il a un nombre insensé de modifications. Une partie du texte intégré contient une adresse e-mail, qui est rendue dans Discourse sous forme de [email protected] et toutes les modifications sont affichées comme si elles modifiaient cette partie.
Bonjour !
J’aimerais avoir votre avis sur ce « bug » : Embed: dates are not localized - #9 by weber-s
Serait-il judicieux d’avoir un paramètre pour la localisation des dates ? Parce qu’actuellement, elles sont en anglais, sans possibilité de personnalisation.
Nous avons un scénario où cela ne fait pas bonne impression lorsque les gens partagent des images/captures d’écran dans leurs publications pour des publications intégrées sur une autre page.
Quelle serait une bonne solution pour masquer les images dans les publications intégrées sur un autre site ?
Il y a un onglet CSS dédié dans les thèmes pour cette fonctionnalité, donc cacher les images dans le corps du message avec CSS est le moyen le plus rapide d’y parvenir.







