SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 215 visiteurs en ce moment

Accueil > Rédaction > Sommaires > Sommaire automatique > Sommaire automatique

Sommaire automatique

31 janvier 2013 – par Cerdic – 11 commentaires

13 votes

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.

Il 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 parmi les trois possibles :

  • Insertion automatique sur tous les articles : le sommaire sera calculé et affiché en début de chaque article, sauf si il 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 reconnait 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>.

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 :

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

Télécharger

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 :

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

Télécharger

Balise #SOMMAIRE

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

  1. <BOUCLE_art(ARTICLES){id_article}>
  2. #SOMMAIRE{#TEXTE}
  3. </BOUCLE_art>

Télécharger

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 :

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

Télécharger

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 :

  1. <BOUCLE_art(ARTICLES){id_article}>
  2. [(#SOMMAIRE{[#CHAPO (#TEXTE) #PS]}
  3. [(#CHAPO|ancres_sommaire)]
  4. [(#TEXTE|ancres_sommaire)]
  5. [(#PS|ancres_sommaire)]
  6. </BOUCLE_art>

Télécharger

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.

Voir en ligne : http://plugins.spip.net/sommaire

Dernière modification de cette page le 5 avril 2015

Retour en haut de la page

Vos commentaires

  • Le 14 septembre à 12:49, par Spipmalion En réponse à : Sommaire automatique

    Bonjour,

    Comment faire pour que fonctionne sur le texte des mots-clés ?

    Merci !

    Répondre à ce message

  • Le 23 août à 20:52, par Jaseur Boreal En réponse à : Sommaire automatique

    Bonjour Cédric,

    En utilisant la balise <sommaire> dans le champs texte d’un article,
    on observe que les titres des images d’un diaporama Cycle2 inclus dans l’article, apparaissent dans le sommaire en niveau 2.
    Exemple sur ce lien :

    Comment éviter ces apparitions ?

    merci des solutions.

    Répondre à ce message

  • Le 9 avril 2013 à 10:23, par Mathieu En réponse à : Sommaire automatique

    J’avais un souci où la balise #SOMMAIRE{#TEXTE} affichait le #TEXTE si (et seulement si) il n’avait pas de balise h* dans le #TEXTE.

    Je l’ai résolu en modifiant la fonction « sommaire_post_propre » :

    function sommaire_post_propre($texte, $ajoute=true, $sommaire_seul=false){

            if (strpos($texte, '<h')!==false)
                    $texte = sommaire_filtre_texte_echappe($texte,'sommaire_filtre','html|code|cadre
    |frame|script|acronym|cite',array($ajoute,$sommaire_seul));
            elseif($sommaire_seul)
                    return "";

            return $texte;
    }
    • Le 10 avril 2013 à 17:15, par Johan En réponse à : Sommaire automatique

      Je viens de rencontrer le même bug et la correction que tu proposes Mathieu fonctionne. Merci !

    • Le 19 novembre 2013 à 19:35, par Casp En réponse à : Sommaire automatique

      Même problème. Ta solution fonctionne nickel.
      Il faudrait corriger le plugin.

    • Le 3 avril 2014 à 11:52, par chankalan En réponse à : Sommaire automatique

      la solution sans surcharger le plugin :

      [(#SOMMAIRE|oui) [(#SOMMAIRE{[#CHAPO (#TEXTE) #PS]})] ]
    • Le 2 juillet 2014 à 14:35, par chankalan En réponse à : Sommaire automatique

      en fait ce que je disais juste ci-dessus ne se confirme pas... (que s’était-il passé ?)

    Répondre à ce message

  • Le 14 mai 2014 à 22:59, par Johan En réponse à : Sommaire automatique

    Bonjour,

    En utilisant la balise <sommaire> dans le champs texte d’un article, il me semble qu’il y a un souci dans modeles/sommaire.html (avec SPIP 3) : le code html généré par #FILTRE{propre} est mal formé :

    • on obtient :</div></li></ul><!--/sommaire--> au lieu de </li></ul></div><!--/sommaire-->
    • du fait de balises <p> et </p> autour du sommaire

    Constaté avec SPIP 3.0.16 et sommaire 1.1.0 (sasn autres plugins activés).

    Répondre à ce message

  • Le 15 mars 2013 à 00:27, par Philippe B. En réponse à : Sommaire automatique

    Bonjour Cédric,

    Pouvez-vous m’indiquer comment fait-on pour n’afficher que les liens de premier niveau dans le sommaire ?

    D’autre part, il semble que le filtre « retire_ancres_sommaire » ne fonctionne pas... Je pense qu’il y a une erreur au niveau de l’expression régulière dans le preg_replace :
    ",<a class='sommaire-back'[^>]*></a>,Uims" au lieu de ",<a class='sommaire-back[^>]*></a>,Uims"

    Merci pour ce plugin très bien fait !

    • Le 16 janvier 2014 à 14:54, par 1138 En réponse à : Sommaire automatique

      Pouvez-vous m’indiquer comment fait-on pour n’afficher que les liens de premier niveau dans le sommaire ?

      Ce serait en effet pratique de pouvoir régler la profondeur du sommaire, comme c’est d’ailleurs possible via le couteau suisse.

      La solution bancale que j’ai trouvée, c’est de cacher les niveaux inférieurs par CSS. Le sommaire est toujours complet dans le code HTML et sera lu par les moteurs de recherche, Links, les lecteurs vocaux, etc.

      Pour afficher le niveau 1 (balise h3) :
      .nav-sommaire ul ul { display:none; }

      Pour afficher les niveaux 1 et 2 (balises h3 et h4) :
      .nav-sommaire ul ul ul { display:none; }

      Pour afficher les niveaux 1 à 3 (balises h3 à h5) :
      .nav-sommaire ul ul ul ul { display:none; }

      Pour afficher les niveaux 1 à 4 (balises h3 à h6) : ne rien faire, c’est le comportement par défaut.

      Encore plus sale : pour gérer ça article par article, il faut introduire le style dans le texte. Exemple :
      <html><style type="text/css">.nav-sommaire ul ul ul { display:none; }</style></html>

    Répondre à ce message

  • Le 9 avril 2013 à 12:56, par gilcot En réponse à : Sommaire automatique

    Je pense que ce plugin (ainsi que ToDo) serai(en)t bien sur contrib. Pour nombre de documentation de plugin, une petite table des matières fait défaut et je comprends que les rédacteurs n’aient pas le temps (et l’envie ?) de se faire ça à la main, alors avoir la balise <sommaire> serait un énorme avantage ! (juste le raccourci, pas en dur dans le squelette pour que ce soit au cas par cas des contributions car elles en ont pas toutes besoin)

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Acces Restreint 3.0

    11 décembre 2008 – 784 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

  • Champs Extras 3

    16 janvier 2012 – 538 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Réservation d’événements

    16 mars 2015 – 190 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • Les crayons

    23 avril 2008 – 815 commentaires

    Ce plugin permet d’éditer les contenus sur les pages publiques du site, sans passer par l’espace privé de SPIP.

  • LESS pour SPIP : Less-CSS (anciennement LESSpip)

    5 novembre 2010 – 43 commentaires

    Less-CSS (Anciennement LESSpip) est un plugin intégrant facilement le logiciel LESS dans SPIP. LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de (...)

Ça spipe par là