Table des Matières

Ajoute des ancres en fonction des intertitres et fournit une balise pour afficher la « table des matières » d’un article - autrement dit un « sommaire » -.

Objectif

L’objectif de ce plugin est d’ajouter des ancres html calculées en fonction du texte de l’intertitre, et de fournir une balise pour afficher la “table des matières” d’un article (contenu de #TEXTE)

Fonctionnement

Les intertitres ( notés {{{intertitre}}} ) seront transformés en <h3 class="spip"><a name="intertitre"></a>intertitre <a href="tdm"><img ... /></a></h3>

Le contenu de l’attribut name est calculé selon une méthode approchant celle des urls propres de spip. Aussi un intertitre {{{ceci est un intertitre spécial}}} sera transforme en <h3 class="spip"><a name="ceci-est-un-intertitre-special"></a>ceci est un intertitre spécial</h3>

Chaque intertitre est mémorisé avec son ancre correspondante pour être reproduite dans la balise #TABLE_MATIERES

Installation

Télécharger l’archive ci-joint, puis décompresser le fichier. Copier ce répertoire tables_matieres dans le répertoire «plugins» de votre site spip. Alternativement, vous l’aurez trouvé dans l’interface de chargement automatique de SPIP, il se trouve alors dans plugins/auto

Table of contents (2.4.0)

Configuration

Le plugin dispose d’un menu de configuration qui permet de choisir:

  • si la table des matières doit s’insérer automatiquement ou via l’appel de la balise
    #TABLE_MATIERES
  • A partir de combien d’intertitres minimum, il faut générer la table des matières
  • Le format des ancres générées
  • ....

Utilisation

Les intertitres seront calculés automatiquement. Pour afficher la table des matières, ajouter la balise #TABLE_MATIERES dans votre squelette à l’intérieur d’une boucle ARTICLES.

#TABLE_MATIERES affichera les ancres de la manière suivante par défaut :

<div id="tdm" class="divers">
	<h2 class="menu-titre">Table des matières</h2>
	<ul>
		<li><a href="#intertitre-1">intertitre-1</a></li>
		<li><a href="#intertitre-2">intertitre-2</a></li>
		<li><a href="#intertitre-3">intertitre-3</a></li>
	</ul>
</div>

Ce qui est un modèle CSS connu puisque tout proche de celui des noisettes de la barre de navigation des squelettes par défaut de SPIP.

Notez la présence d’un noeud DOM #tdm pour permettre l’aller/retour entre la table et les intertitres par simple clic, personnaliser l’habillage en CSS ou jouer avec la table en jQuery.

Personnalisation

Il est possible de personnaliser le modèle fourni en surchargeant le fichier modeles/tables_matieres.html

Prérequis

Ce plugin nécessite une version de SPIP récente (révision minimum : 9738, introduction de la balise #FOREACH)

Discussion

24 discussions

  • 2

    Ok avec la 1.9.3 ca fonctionne, mais dès qu’on met du Latex, ca plante ....
    La table des matières est opérationnelle mais le tex est déterioré ....
    En voici le Code

    {{{Bug Majeur}}}
    <math>
    $$
    \begin{array}{ccl}
    |x_n-x_*|&=&|g(x_{n-1})-g(x_*)|=|g'(\xi_{n-1})||x_{n-1}-x_*|\leq\tau|x_{n-1}-x_*|\\
    |x_n-x_*|&\leq&\tau|x_{n-1}-x_*|\leq\tau^2|x_{n-2}-x_*|\leq\ldots\leq\tau^n|x_{0}-x_*|
    \end{array}
    $$
    </math>

    Sans le plugin activé le tex est nickel, avec le tex est détérioré ...

    Cordialement

    • J’ai une parade, mais...

      dans le fichier table_matieres.php, ligne 45, si je mets '(code|cadre|math', ça retabli effectivement le tex... mais si on met du texte avec des accolades dans la balise <math>, ça ne comptera pas dans la table des matières.

      Je met ça pour le moment, en attendant de trouver, si c’est utile, un truc meilleur.

    • C’est corrigé avec la révision 14401 du plugin. Merci de me confirmer le fonctionnement attendu.

    Reply to this message

  • 2

    Cette contrib’ me rappelle beaucoup «Génération automatique de numérotation, table des matières et références» de Mortimer et Chtitux...

    Serait-il possible d’améliorer cette nouvelle «table des matières» en lui faisant gérer, comme l’ancienne, des niveaux de titres (et donc introduire des raccourcis typo, à cette occasion...) ?

    Reply to this message

  • 3

    j’ai installé le plugin et j’ai mis la balise

    #TABLE_MATIERES

    dans une boucle
    ARTICLE
    Les ancres sont opérationnelles mais la table des matières n’est pas produite
    j’obtient en lieu et place de la table ce qui suit:

    Table des matières
    
          {TDM} 
    
     
    • La version utilisée: SPIP 1.9.2a [8878]
      Le plugin: le dernier ... télécharger aujourdhui

    • idem

      je ne vois qur #tdm au lieu et palce de la table des matières

      1.9.2 b

      alors que les intertitres fonctionnent bien !

      .????????????????

    • c’est la version 1.9.3 (9738) qu’il faut avoir...pas la 1.9.2

    Reply to this message

  • Juste pour dire que la table des matieres vient d’être très facilement installée sur SPIP-Contrib (1.9.3 SVN 9813). Apparemment ça marche ;-)

    Peut-être faudrait-il mieux expliquer dans l’article quel est le style employé, et comment le modifier s’il y a lieu.

    @+ NicolasR

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom