Les ancres ne fonctionnent pas sur les publications dans un sujet

Nous essayons de configurer un sujet comme une sorte de FAQ/guide d’utilisation du forum, et ce faisant, nous aimerions avoir un certain nombre de longs messages, chacun avec un certain nombre d’en-têtes, et compiler une table des matières dans le premier message du sujet afin que les utilisateurs puissent facilement naviguer.

Cela s’avère trompeusement difficile à faire fonctionner comme prévu et les recherches sur Meta n’aident pas vraiment, malheureusement. Nous sommes au courant du plugin (auto-ToC ou peu importe comment il s’appelle), mais nous voulons juste cela pour un seul sujet et ne voulons donc pas vraiment nous en occuper.

Nous avons essayé d’utiliser les icônes de lien à côté d’un en-tête markdown auto-généré via les symboles #, mais cela ne fonctionne pas - nous ne sommes pas sûrs si c’est juste à cause des couleurs que nous utilisons pour les en-têtes, ou quelque chose d’entièrement différent, mais dans tous les cas, cela fonctionne pour certains mais pas pour tous nos en-têtes.

Essayer d’utiliser des balises HTML avec des id manuels pour nos en-têtes n’a pas non plus abouti - cela ne sautait tout simplement pas aux liens. Nous avons vu quelque part sur Meta que les informations d’id étaient supprimées par Discourse et avons arrêté de poursuivre cette approche.

Nous avons ensuite vu une idée astucieuse utilisant des liens vides placés juste au-dessus de nos en-têtes auxquels on pouvait simplement sauter, et bien que cela ait d’abord semblé fonctionner, après quelques messages, cela cesse également de sauter au bon endroit dans le message lié.

Quelqu’un sait-il pourquoi les en-têtes semblent si cassés et comment pouvons-nous les faire fonctionner sur plusieurs messages au sein d’un seul sujet ? Je classe cela comme un bug, car le comportement semble incroyablement indésirable, mais je serais prêt à faire quelques efforts de notre côté pour que cela fonctionne si quelqu’un sait comment.

Pour que les ancres fonctionnent sur des sujets plus longs, vous devrez utiliser l’adresse complète du message avec l’en-tête ajouté pour compenser le fait que le message cible n’est pas chargé à l’écran.

Si l’ancre était <a></a> dans le message d’origine de ce sujet, l’utilisation de ce lien fonctionnerait même dans un message, par exemple le 456.

https://meta.discourse.org/t/anchors-not-working-across-posts-within-topic/240512/1#anchor

Est-ce que cela vous aide ?

1 « J'aime »

C’est ce que nous faisions déjà, malheureusement

Nos liens dans la table des matières étaient de ce format :

https://www.site.com/t/topic-name/ABCD/E#header--header-name

et nos liens réels dans les publications étaient de ce format

<a></a>

Cela a fonctionné pour les premiers messages, mais a échoué autour du 8e ou 9e message.

1 « J'aime »

J’utilise cette méthode sur un autre site et elle fonctionne très bien pour moi. Avez-vous un lien que vous pourriez partager pour que je puisse la voir en action ?

Non, malheureusement, car la publication est toujours réservée au personnel.

Peut-être que je pourrais essayer de reproduire notre configuration sur le site web du créateur de thèmes et voir si cela fonctionne là-bas ?

Mise à jour : Le créateur de thèmes n’a pas de BBCode Discourse, donc je ne suis pas convaincu que ce sera parfaitement identique. Dommage.

Nous avons tendance à utiliser try.discourse.org pour cela, mais cela pourrait demander plus d’efforts que cela n’en vaut la peine dans ce cas ?
La seule chose qui semble différente de celles que j’utilise est le double trait d’union, mais cela semble peu probable. Peut-être est-ce le nombre de liens dans l’en-tête ? Je ne suis pas sûr.

1 « J'aime »

C’est ce que je suspecte, et c’est pourquoi ceci est classé sous Bug et non Support.

J’ai oublié try, je vais peut-être passer à autre chose.

1 « J'aime »

Je les ai eus

Reproducible sur Try

https://try.discourse.org/t/testing-heading-links-i-guess/1405?u=orangeandblack5

Les premiers ensembles de liens d’ancrage fonctionnent

Les ancres des trois derniers messages ne fonctionnent pas

Désolé de repousser cela un week-end

Quand les choses sur Try sont-elles effacées, en général ? Je préférerais ne pas avoir à reconstruire tout cet ensemble de liens d’ancrage à nouveau lol

Ils fonctionnent pour moi la première fois, et lors d’un rafraîchissement de page, mais pas lorsque j’utilise la chronologie de navigation pour revenir à l’OP.

J’ai des liens ‘retour’ dans mes articles similaires avec l’adresse complète de l’OP/les en-têtes du TOC, ce qui effectuerait un rafraîchissement de page. Est-ce que cela fonctionnerait pour vous ?

1 « J'aime »

Je veux dire, nous pourrions certainement l’utiliser comme solution de secours

Parce que vous avez raison, cela fonctionne effectivement

Cependant, personne ne navigue normalement comme ça, donc je pense vraiment que c’est un bug très clair et qu’il devrait idéalement être corrigé lorsque l’équipe aura le temps de s’en occuper


En fait, nous ne créerons probablement des liens que vers les publications de niveau supérieur et ajouterons les ancres de section spécifiques lorsqu’elles auront été corrigées

Cela semble mieux qu’une fonctionnalité défectueuse pour nos utilisateurs


Y a-t-il un moyen de sauvegarder cette publication sur Try pour qu’elle ne soit pas effacée afin que quelqu’un qui en sait plus sur Discourse que moi puisse chercher à comprendre pourquoi cela se produit ?

Ou serait-il préférable de la recréer ici ?

Vous pourriez ouvrir ces publications en mode édition ou récupérer la version raw et les copier dans un sujet sur votre site comme exemple plus permanent auquel vous référer (ou pour les sauvegarder et les recréer plus tard en cas de nouvel essai).

eh je vais juste le faire ici

https://meta.discourse.org/t/example-anchor-links-dont-work-unless-page-reloaded/240589?u=orangeandblack5

comme ça il n’y a aucune chance que quelque chose sur notre site gêne la capacité de l’équipe à résoudre le problème