J’ai essayé de mettre cela en œuvre aujourd’hui, mais j’ai rencontré quelques problèmes :
- Dans le message du forum, l’URL dérivée (de discourseEmbedUrl ?) est mise en minuscules, ce qui casse les URL sensibles à la casse dans le lien qui suit le texte « Ceci est un sujet de discussion complémentaire pour l’entrée originale à… »
- Lors du premier chargement de la page, l’incorporation affiche « Chargement de la discussion… » et reste bloquée. Au deuxième chargement de la page, tout fonctionne.
- Remise à zéro de la page : lorsque le cadre iFrame se charge, il a une hauteur par défaut, mais s’il n’y a pas de commentaires trouvés, la hauteur se réduit pour n’afficher qu’une seule ligne avec « Démarrer la discussion ». Cela aggrave le bug de « chargement de la discussion », car il maintient une grande hauteur verticale.
- Il serait souhaitable que les données extraites du parent de l’incorporation privilégient une balise meta au lieu de textifier la page entière, je suppose que c’est un comportement plus général de Discourse.
La plus grande surprise a été d’apprendre qu’à chaque fois que vous visitez une URL avec une incorporation, un nouveau sujet est créé. C’est dans l’OP :
La seule solution à laquelle je puisse penser est une solution de contournement, s’appuyant sur le SSR/cache à court terme pour interroger le point d’accès d’incorporation :
donc je pense que la logique serait :
-
vérifier
$discourse/embed/info?embed_url=$link -
si le sujet existe, afficher l’incorporation comme d’habitude.
-
sinon, afficher un bouton « démarrer une conversation » qui pointe vers
$discourse/new-topic?subject=$link.
Cela fonctionnerait-il, ou y a-t-il un autre lien qui doit être établi ?