Publication intégrée : Impossible de lire les sélecteurs CSS d'un site React

J’ai des balises CSS sur mon contenu et j’ai identifié les sélecteurs CSS dans les paramètres d’administration de l’intégration, mais ils ne sont pas pris en compte par le robot d’exploration. Je pense que c’est parce que mon site est construit avec React et que les sélecteurs CSS ne sont pas accessibles. Comment puis-je utiliser cette fonctionnalité avec un site React ?

Cela pourrait être le cas, bien que je m’attende à ce que la requête que Discourse fait au site renvoie du HTML. Autre chose à vérifier est que Discourse met en cache le contenu qu’il a extrait du site externe pendant 10 minutes. Cela signifie que si vous ajustez le paramètre du site allowed embed selectors, vous devrez attendre jusqu’à 10 minutes pour voir les résultats de la nouvelle valeur du paramètre.

Si votre site Discourse n’est pas encore en production et que vous avez accès à la console Rails du site Discourse, vous pouvez vider le cache depuis la console avec Rails.cache.clear

Quelques détails supplémentaires sur le paramètre sont ici : Configuring allowed embed selectors.

Edit : Je pense que l’intégration fonctionne comme prévu. C’est juste délicat à configurer pour certains sites. Je vais déplacer ce sujet vers Support.

J’ai créé un sujet Feature il y a quelques mois suggérant que Discourse devrait trouver un meilleur moyen d’analyser les publications intégrées : Topic embedding needs some love. Je vais y consacrer du temps bientôt si personne ne s’en charge avant moi.

3 « J'aime »

Discourse présente une vue différente pour les robots d’exploration. Pour la voir, vous devrez visiter avec JavaScript désactivé.

Je ne m’attendrais pas à ce que les publications intégrées soient explorées car elles n’existent pas sur le site où elles sont intégrées.

Bonjour, je fais référence à la façon dont Discourse explore mon site React avec la fonctionnalité de publication intégrée. J’ai du mal à lui dire quel contenu inclure dans la publication Discourse en raison de la façon dont il voit ma page React.

Si cela peut aider, le code utilisé pour récupérer la publication externe se trouve ici : discourse/app/models/topic_embed.rb at main · discourse/discourse · GitHub

Si vous avez accès à la console Rails de votre site, vous pouvez la tester pour avoir une idée de ce qui se passe. Par exemple :

TopicEmbed.find_remote("https://blog.discourse.org/2023/04/introducing-discourse-ai/")

Là où j’ai rencontré des problèmes, c’est avec la méthode parse_html qui est appelée à la fin de la méthode find_remote. Ruby Readability a du mal avec certains HTML/CSS.

Il est également possible que du HTML ne soit pas renvoyé par votre site React. Vous pourriez le confirmer en exécutant le code de la méthode find_remote étape par étape depuis la console.

2 « J'aime »

C’est excellent, merci !