Extraits tronqués à 50 caractères

J’avais les extraits de sujets fonctionnant comme souhaité — c’est-à-dire qu’ils respectaient post_excerpt_maxlength dans tous les cas. J’ai d’abord fait cela avec un plugin (qui fonctionnait), puis j’ai appris l’existence de SiteSetting.always_include_topic_excerpts = true, et j’ai donc basculé vers cette option. Cela fonctionnait toujours.

Il y a environ deux jours, peut-être après l’application de la version 2.4.0.beta4, les extraits ont commencé à être tronqués à 50 caractères. Très mystérieux.

J’ai essayé d’inverser SiteSetting.always_include_topic_excerpts, de réinstaller le plugin et de modifier la valeur de post_excerpt_maxlength, mais rien n’a changé. Toujours bloqué à 50 caractères.

Quelqu’un d’autre rencontre-t-il ce problème ? Je ne sais plus quoi essayer.

Cela pourrait-il être un bug, @neil ?

Un autre point est que cela n’affecte que les nouveaux sujets. Les anciens sujets avec des extraits plus longs les conservent toujours.

Ajouter un message à un tel sujet ne raccourcit pas l’extrait (ce qui n’est pas surprenant), mais modifier le premier message entraîne en effet un nouveau tronquage de l’extrait à 50 caractères.

Donc, bien que je n’aie pas vérifié (je suis nouveau sur Discourse), il semble que les extraits soient un champ de base de données et que le tronquage ne se produise que lors d’une mise à jour d’enregistrement.

LQ

Le plugin que vous avez lié contient la valeur 50 en dur :

https://github.com/hnb-ku/discourse-topic-excerpt-plugin/blob/master/plugin.rb#L8

Vous pouvez forker le plugin et remplacer 50 par SiteSetting.post_excerpt_maxlength, ou @Johani peut le mettre à jour pour vous.

Ce plugin n’a pas été mis à jour depuis presque deux ans et il est antérieur à l’ajout du paramètre always_include_topic_excerpts. Vous ne devriez absolument pas l’utiliser. J’ai ajouté un avis de dépréciation et je supprimerai ce dépôt dans environ une semaine.

Veuillez désactiver ce plugin obsolète, activer le paramètre always_include_topic_excerpts et me faire savoir si vous rencontrez toujours le même problème.

Cela semble fonctionner. J’avais été induit en erreur car l’application du plugin m’a donné les extraits (300 caractères) que je voulais, alors qu’auparavant je n’en avais aucun. Je suppose que seuls les sujets créés ultérieurement présentaient la valeur 50 codée en dur.

Une petite complication : les sujets existants avec des extraits de 50 caractères les conservent toujours. Il semble nécessaire de modifier l’OP de ces sujets pour allonger leurs extraits à post_excerpt_maxlength. Existe-t-il un moyen d’automatiser cela ? Merci.

LQ

Vous devrez récuire les publications pour qu’elles respectent la nouvelle limite. Plus d’informations ici.

Ces commandes sont-elles vraiment interchangeables aujourd’hui ?

rake posts:rebake

bundle exec rake posts:rebake

La première tâche Rake s’est exécutée sans problème, mais n’a pas régénéré les extraits. Néanmoins, le site fonctionnait.

J’ai ensuite essayé avec be. Cela s’est terminé par :

rake aborted!
PG::ConnectionBad: FATAL:  Échec de l'authentification par pair pour l'utilisateur "discourse"

… suivi d’une trace de pile. Désormais, les pages de sujets sont inaccessibles. La page d’accueil est accessible, ainsi que la plupart des sections d’administration — bien que les graphiques sur la page d’accueil de l’administration échouent à se charger. Exécution de …

rake posts:rebake

… ne résout pas le problème. J’ai finalement redémarré le droplet, mais le problème persiste. Toute aide serait appréciée.

LQ

Oui, je viens de tester les deux

$ cd /var/discourse
$ ./launcher enter app
$ bundle exec rake posts:rebake

Rebaking post markdown for 'default'
      297 / 297 (100.0%)
297 posts done!
--------------------------------------------------
$ cd /var/discourse
$ ./launcher enter app
$ rake posts:rebake

Rebaking post markdown for 'default'
      297 / 297 (100.0%)
297 posts done!

et ils ont fonctionné sans problème.

Cela implique que vous avez d’autres problèmes. Avez-vous suivi le guide d’installation pris en charge lors de la configuration de votre site ?

Oui. Installé exactement comme indiqué dans INSTALL-cloud.md.

La seule différence est qu’il s’agit de la version 19.04. Je n’ai mis à jour aucun gem manuellement ni rien de semblable.

Voici la sortie complète de bundle exec rake posts:rebake --trace

Je ne peux pas l’affirmer avec certitude, mais je pense que vous pourriez avoir deux problèmes distincts.

Essayez ce qui suit pour affiner le diagnostic :

  • supprimez tous les plugins non officiels
  • reconstruisez l’application
  • essayez le mode sans échec et vérifiez si l’application se charge

Voyez-vous des erreurs dans la console de votre navigateur sur les pages défectueuses ?

Suppression des plugins de notes de bas de page et de cases à cocher. Je ne suis pas sûr qu’ils soient officiels. Reconstruction effectuée. Aucune erreur dans la console lors du chargement en mode non sécurisé. Le site est en ligne.

Y a-t-il un intérêt à tester le mode sécurisé pour les erreurs de console ? Sinon, il semblerait que ce soit l’un de ces plugins.

Oui, ce sont bien les versions officielles, mais assurez-vous de ne pas utiliser une version modifiée (fork) d’une sorte ou d’une autre. Les plugins officiels affichent une coche à côté de leur nom dans l’interface d’administration.

et sont hébergés sous https://github.com/discourse/.

Je viens de tester les deux sur la dernière version et je ne parviens pas à reproduire le problème que vous rencontrez — le site ne se chargeant pas.

S’il n’y a aucune erreur en mode normal (non en mode sans échec), alors vous n’avez pas besoin de vérifier cela en mode sans échec.

Je suppose que les extraits n’ont toujours pas été mis à jour ?

Avez-vous vérifié votre.site.com/logs ?

Non, mais c’est une instance récente. Je vais laisser tomber.

Oui, rien de bien intéressant. Je fais des unattended-upgrades et il semble que dpkg tournait peut-être au moment de la régénération. Pas de panique.

Merci pour l’aide.

LQ