Sommaire automatique

Ce plugin repère les intertitres des textes de vos articles et s’en sert pour génèrer un sommaire. Ce dernier peut être inséré automatiquement au début de chaque article, ou utilisé dans les squelettes pour générer un sommaire sur n’importe quel autre contenu.

C’est une alternative au plugin Table des Matières ainsi qu’à la lame Un sommaire pour vos articles du plugin Couteau Suisse.

Configuration

Après l’installation, il convient de configurer le mode de fonctionnement du plugin sur les articles parmi les trois possibles :

  • Insertion automatique sur tous les articles : le sommaire sera calculé et affiché en début du texte de chaque article, sauf si celui-ci contient une seule entrée ;
  • Insertion dans le texte des articles à la demande : le sommaire sera ajouté uniquement en présence du raccourci <sommaire> dans le texte de l’article ;
  • Aucune insertion dans le texte des articles : le plugin ne fera aucune insertion automatique. Cette configuration est utile si vous voulez gérer l’affichage du sommaire directement dans le squelette.

Fonctionnement

Le plugin commence par repérer tous les intertitres du texte. Il intervient après transformation des raccourcis SPIP et reconnaît ainsi tous les types d’intertitre :

  • ceux obtenus par le raccourci {{{   }}} de SPIP ;
  • ceux obtenus par un raccourci spécial d’un plugin qui permet de générer des niveaux intermédiaires d’intertitre
  • les intertitres directement saisis en HTML comme <h4>

Pour chaque intertitre :

  • une ancre est calculée à partir de son texte, sur le même principe que pour le calcul des URLs (suppression des accents et caractères exotiques, remplacement des espaces par des tirets, et coupe si trop long) ;
  • le niveau de l’intertitre est mémorisé ;
  • un lien de retour vers le sommaire est ajouté.

Un sommaire est alors automatiquement construit à partir du modèle modeles/sommaire.html auquel est fournie la liste des intertitres. Par défaut cela génère un sommaire sous la forme d’une liste de liens hiérarchisés, reproduisant la hiérarchie des intertitres.

Pour les Rédacteurs

Si le fonctionnement automatique ou semi-automatique du plugin est retenu, les rédacteurs peuvent indiquer à quel endroit insérer le sommaire au moyen du raccourci <sommaire>.

Il est possible de préciser le niveau max : <sommaire|niveau_max=2>.

On peut également supprimer le sommaire sur un article spécifique avec <retire_sommaire>.

Pour faciliter la migration depuis l’outil du Couteau Suisse, le raccourci [sommaire] est aussi pris en charge, mais son utilisation est déconseillée car ce raccourci apparaitra dans vos textes si vous désactivez le plugin, au contraire du premier.

Pour les Webmestres

Le plugin fournit aussi des filtres et une balise pour mieux contrôler l’affichage du sommaire, ou le contenu sur lequel il s’applique. Cela concerne le cas où vous avez sélectionné le mode manuel du plugin, mais cela peut aussi concerner certains cas particuliers de pages pour lesquelles vous voulez désactiver le sommaire automatique, ou si vous voulez générer un sommaire sur un autre contenu.

Filtre |retire_sommaire

Ce filtre permet de retirer un sommaire généré automatiquement sur un texte d’article. Les ancres sur les intertitres et les liens de retour au sommaire seront laissés intacts. Ce filtre est donc utile sur une page donnée où l’on veut afficher le sommaire à un autre endroit de la page.

Exemple d’utilisation :

<BOUCLE_art(ARTICLES){id_article}>
[(#TEXTE|retire_sommaire)]
</BOUCLE_art>

Filtre |retire_ancres_sommaire

Ce filtre permet de retirer les ancres, les liens de retour au sommaire et le sommaire générés automatiquement sur un texte d’article.
Il est utile pour retirer complètement sur une page particulière le sommaire généré automatiquement.
Exemple d’utilisation :

<BOUCLE_art(ARTICLES){id_article}>
[(#TEXTE|retire_ancres_sommaire)]
</BOUCLE_art>

Balise #SOMMAIRE

La balise sert à afficher le sommaire d’un texte qu’on lui fournit en argument :

<BOUCLE_art(ARTICLES){id_article}>
#SOMMAIRE{#TEXTE}
</BOUCLE_art>

Elle peut servir à afficher le sommaire à un endroit particulier du texte de l’article, mais aussi à générer un sommaire pour un texte d’un autre objet, ou de plusieurs champs concaténés :

<BOUCLE_art(ARTICLES){id_article}>
[(#SOMMAIRE{[#CHAPO (#TEXTE) #PS]}
</BOUCLE_art>

Dans ce dernier cas, il conviendra d’utiliser le filtre qui suit sur chaque champ lors de son affichage.

Filtre |ancres_sommaire

Ce filtre permet d’ajouter les ancres et les liens de retour au sommaire sur les intertitres. Il est complémentaires de la balise #SOMMAIRE précédente. À noter que si un sommaire automatique avait été généré il est supprimé par le filtre.

Exemple d’utilisation où l’on affiche le sommaire calculé à partir du chapeau, du texte et du post-scriptum, ainsi que chacun de ces champs :

<BOUCLE_art(ARTICLES){id_article}>
[(#SOMMAIRE{[#CHAPO (#TEXTE) #PS]}
[(#CHAPO|ancres_sommaire)]
[(#TEXTE|ancres_sommaire)]
[(#PS|ancres_sommaire)]
</BOUCLE_art>

Filtre |sommaire_propre

Le sommaire n’est calculé automatiquement que sur le texte des articles.
Ce filtre permet de générer le sommaire de n’importe quelle balise de texte qui contient un <sommaire> mais il doit être appliqué à la place du filtre propre.

Exemple pour générer un sommaire sur une rubrique (ou autre objet) :

[<div class="texte #EDIT{texte}">(#TEXTE*|sommaire_propre)</div>]

Personnalisation

Le plugin ajoute la feuille de style css/sommaire.css dans le site public. Vous pouvez la copier dans un sous-répertoire css/ de votre dossier squelettes/ et la modifier pour personaliser l’apparence du sommaire ou des liens de retour.

Le sommaire est calculé à partir du modèle modeles/sommaire.html. Vous pouvez aussi le copier dans votre dossier squelettes/ et le modifier. Vous pouvez notamment choisir d’afficher tous les liens vers les intertitres sur un seul niveau, ou n’afficher que les liens de premier niveau, modifier la structure HTML du bloc etc.

Discussion

Une discussion

  • Bonjour,
    Est-ce qu’il est possible d’ajouter un filtre qui ne montre le sommaire que s’il y a plus de 2 occurrences de H2/H3 dans un texte ?

    J’ai l’impression que c’est possible car actuellement la limite est 1,
    Je cherche, je cherche mais je ne trouve pas comment mettre la limite à 2.

    Merci
    dd

    Répondre à ce message

Ajouter un commentaire

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
  • 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 apparaît.

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.

Qui êtes-vous ?
[Se connecter]

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