Création Table des matières
Problem has been recordedIssue description
Ma question va peut être paraître idiote mais quelqu'un serait-il m'indiquer comment on créer une table de matières avec yacs.
Je voudrais créer une table des matières pour un article découpé en plus de 20 pages. Cette table des matières doit apparaitre sur toutes les pages.
Un bonne exemple de ce que je cherche à faire : http://doc.ubuntu-fr.org:81/lamp_plus
J'ai aussi pensé à faire une bôite extra spécifique pour la table des matières. Celle-ci s'afficherais en association avec l'article.
Merci pour vos éclaircissement sur le sujet
Comments
ThierryP![]() from Nice, Drap Associate, 1208 posts | Utilisation du code Yacs (toc) Utilisation des balises h2 et h3 (title et subtitle) Chaque nouvelle page doit obligatoirement commencer par un titre. (Pour le menu dans chaque page, a essayer le code (toc) à chaque début de page, ensuite titre du niveau souhaité...) (Pouvais pas répondre plus vite )Un annuaire propulsé par YACS - Skins pour Yacs : YordPress 5.3 - Bonbon Skin 1.2 - Totem 930 |
| Nuxwin from Caen, devant mon bureau 190 posts | ThierryP : Ok, merci pour cette réponse donc si j'ai bien compris : Mes titres et ancres dans mes pages : ma première pageancre1ancre2ancre3ma deuxième pageancre1ancre2ancre3Appel de la balise [ toc ] encapsulée dans une balise [ folder ] pour la rendre dépliable : |
ThierryP![]() from Nice, Drap Associate, 1208 posts | A essayer en situation, mais ça devrait marcher, à peu de choses près Un annuaire propulsé par YACS - Skins pour Yacs : YordPress 5.3 - Bonbon Skin 1.2 - Totem 930 |
| Nuxwin from Caen, devant mon bureau 190 posts |
ThierryP : Ok alors y a comme un problème quand même. Si je fais : Représentation du corps du document dans sa totalité : [ folder=table des matières ]Et bien, cela ne fonctionne pas. En fait, dès qu'on se sert de la balise [ page ], cela ne fonctionne plus : 1. La boîte ne se dépplie pas ; 2. En visionnant le code source, on s'aperçois quelle ne contient pas la structure hiérarchisée. Je vais aller à la pêche dans le code de yacs et travailler là-dessus pour proposer une amélioration, notamment faire en sorte que :
Note : Si Bernard ou tof ou autre pesonne compétente peut m'indiquer le script qui s'occupe du parsing, cela me permettra d'aller plus vite. Merci |
| Nuxwin from Caen, devant mon bureau 190 posts |
Je fais suite à mon précédent message. Comme indiqué en liminaire de ce post, dans le cadre de la publication d'un article éclaté sur plusieurs page grâce au code [ page ] proposé par le moteur Yacs, j'ai voulu créer ( sur chacune des pages ) une table des matières permettant aux utilisateurs d'accéder facilement au différents paragraphes constituants l'article publié. La création d'une table des matière avec Yacs s'effectue grâce à l'insertion d'une balise de code nommée [ toc ]. Le problème ici, c'est que la team de développement ( pour des raisons que je ne connais pas ) a choisie de ne pas prendre en compte les balises [ toc ] insérées dans les articles publiés lorque ceci sont éclatés en plusieurs pages grâce au code [ page ]. Ceci est clairement mis en évidence dans le script ./articles/view.php :
Comme nous pouvons aisément le constater, si le document est constitué de plusieurs pages, les balises [ toc ] insérées dans le corps du document sont automatiquement supprimées.Dans un premier temps, j'ai pensé tout bêtement désactiver ce comportement en commentant la partie du code mentionné ci-dessus. Ce faisant, afin de conserver ce comportement, j'ai préférer étendre la balise [ toc ] en rajoutant le code suivant juste en dessous de celui présenté ci-avant :
Le code rajouté ici permet aux utilisateurs qui le souhaitent de pouvoir insérer des balises [toc=by_page] dans le corps des documents employant la balise [ page ].Ainsi, lorsque le document est parsé, toutes les balises [toc=by_page] sont automatiquement remplaçées par de véritable balises [ toc ] sans extension ce qui a pour effet de créer une table des matières pour la page du document dans laquelle la balise est insérée.. La prochaine étape consiste à faire en sorte que la construction de la table des matière porte sur la totalité du corps du document. Là encore, je pense ajouter une seconde extension à la balise [ toc ] soit [toc=all_pages] pour indiquer que la construction doit portée sur l'ensemble des titre, subtitle.. du document et non pas seulement sur ceux de la page en cours d'affichage. A Bernard : Au niveau de l'extension, je suppute que par respect des conventions, je ne devrais pas faire ceci directement dans view.php mais dans le module code de yacs. Merci de me dire si c'est une bonne idée d'étendre cette balise afin de permettre le comportement évoqué ci-avant et si oui, de me dire si la modification convient en l'état ou si je dois plutôt apporter les modifications nécéssaires directement dans le module code de yacs. |
| Bernard from nearby-an-airport Associate, 6696 posts | Le problème essentiel de la table des matières, c'est de bien gérer les liens qu'elle contient. En absence de balise [ page ], c'est facile, tous les titres sont dans la page courante, et un ancrage simple suffit à retrouve ses petits. En revanche, lorsqu'une ou plusieurs balises [ page ] sont présentes, c'est une autre paire de manche. Plutôt que de produire des idées fausses, la table des matières a été purement et simplement déclarée incompatible avec les balises [ page ].Bon, on pourrait faire quelque chose de plus intelligent, c'est sûr, mais l'effort est assez important, et donc les suggestions de code ad hoc sont les bienvenues. |
| LeToto 196 posts | Bonjour. L'amélioration de cette fonction de table de matières m'intéresse, car j'aimerais aussi l'appliquer sur un article volumineux, devant contenir plusieurs pages. En fait, l'article en question est assez long, et comporte plusieurs chapitres. J'aimerais pouvoir générer une page par chapitre (cliquer pour un apperçu de l'article). Où en est donc l'évolution des améliorations? Merci. @+ |
Rate this page
Posted by Nuxwin on Apr. 6, edited by LeToto on June 20, (popular)

)