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 des Matières (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)

Dernière modification de cette page le 13 février 2019

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.

    Répondre à ce 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...) ?

    Répondre à ce 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

    Répondre à ce 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

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom