SPIP-Contrib

SPIP-Contrib

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

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

Accueil > Rédaction > Sommaires > Intertitres hiérarchisés et table des matières > Des intertitres hiérarchisés et des outils pour les manipuler

Des intertitres hiérarchisés et des outils pour les manipuler

Des intertitres auxquels on peut faire appel...

21 septembre 2008 – par Beurt, Paladin – 102 commentaires

17 votes

Cet article décrit les fonctions du plugin Intertitres hiérarchisés et table des matières qui donne accès à des intertitres de niveaux différents ainsi qu’à des modèles permettant de faire une table des matières, des renvois et d’avoir accès à des extraits d’articles. Ces modèles peuvent s’insérer dans les squelettes ou à l’intérieur des articles.

Cette contrib’ est dérivée de Génération automatique de numérotation, table des matières et références écrit par mortimer et chtitux.

Je l’ai mise sous forme de plugin, adaptée à SPIP>1.9 et fait quelques modifications [1].

Elle permet :

-  d’utiliser des intertitres hiérarchisés (plusieurs niveaux de titres) dans vos articles grâce à de nouveaux raccourcis typographiques,
-  d’afficher grâce à un modèle une table des matières dans vos articles et/ou vos squelettes,
-  d’afficher des renvois vers certaines parties d’un article dans vos articles,
-  d’afficher des extraits plus ou moins longs et plus ou moins ciblés d’un article
-  d’extraire des éléments signifiants d’un article.

Actuellement ce plugin est en développement. Cependant il est assez stable pour être utilisé. Il est par exemple utilisé par un site institutionnel : http://svt.ac-creteil.fr.

Installation du plugin

Vous trouverez la dernière version du paquet du plugin dans la zone ou ci-dessous :

Zip - 8.5 ko
Version 0.9.9
Cette archive, présente sur la zone est mise-à-jour lors des nouveaux développements.

(voir les dernières mises à jour)

Dézippez (décompressez) cette archive, puis suivez les instructions traditionnelles pour installer un plugin : Installer un plugin

Des intertitres hiérarchisés

Ce plugin rajoute des raccourcis typographiques pour gérer des niveaux d’intertitres. Ces raccourcis, imaginés par mortimer, s’inspirent des listes et des énumérations de SPIP. C’est à dire que les intertitres utilisent désormais des * ou des # pour que soit déterminé leur niveau :

-  {{{*exemple de premier niveau}}} est un titre de premier niveau (équivalent à {{{exemple de premier niveau}}}),
-  {{{**exemple de titre de second niveau}}} est un titre de second niveau.

Ainsi ce type de contenu dans un article :

{{{*Les outils}}}
{{{**Les trucs qui vissent}}}
Il y en a plein !
{{{***À la main}}}
{{{****Tourne-vis}}}
- cruciforme
- plat
- etc.
{{{***Assisté}}}
{{{****Visseuse}}}
- à fil
- sans fil
{{{**Les trucs qui coupent}}}
snip...
{{{***Ciseaux}}}
{{{****À bois}}}
c'est dangereux ça !
{{{**Les trucs qui frappent (aïe)}}}
{{{***Marteau}}}
trop dangereux pour moi...

Va donner :

Les outils

Les trucs qui vissent

Il y en a plein !

À la main
Tourne-vis

- cruciforme
- plat
- etc.

Assisté
Visseuse

- à fil
- sans fil

Les trucs qui coupent

snip...

Ciseaux
À bois

c’est dangereux ça !

Les trucs qui frappent (aïe)

Marteau

trop dangereux pour moi...

Si à la place des *, vous utilisez des #, les intertitres seront numérotés en utilisant une numérotation scientifique du genre x.y.z.... Ex. :

{{{#Avec des numéros}}}
{{{##de plusieurs niveaux}}}
{{{##C'est une notation scientifique...}}}
{{{#Qui s'incrémentent automatiquement}}}

donne :

1- Avec des numéros

1.1- de plusieurs niveaux

1.2- C’est une notation scientifique...

2- Qui s’incrémentent automatiquement

Donc, l’utilisation des * et/ou des # après le raccourci classique pour les intertitres {{{ permet de hiérarchiser.

Coté HTML, les intertitres hiérarchisés sont transformés en headlines de type <hx class="spip">x est un chiffre allant de 3 à 6 [2]. De plus, chaque intertitre (numéroté ou non) contient une ancre <a name='x.y.z...'></a>x.y.z... est le numéro de l’intertitre. Cette ancre est utilisée par les modèles qui accompagnent ce plugin.

Un fichier CSS installé avec le plugin permet de gérer l’aspect des intertitres dans la partie privée de SPIP. Pour la partie publique, il vous suffit de définir hx.spip {} dans vos propres fichiers CSS pour déterminer comment ces intertitres s’affichent.

Notez que les intertitres des enluminures typographiques sont compatibles avec ce plugin.

Une table des matières

Ce plugin fournit un modèle <table_des_matieres> que l’on peut utiliser dans les articles ou dans les squelettes pour afficher une table des matières qui renvoie vers les intertitres. Elle se présente sous la forme d’une liste de puces (hiérarchisées) avec les intertitres sous forme de liens. Cette table des matières est précédée d’une ancre nommée « table_des_matieres » (<a name="table_des_matieres"></a>), elle est dans un bloc ayant pour identifiant « tablematiere » (<div id="tablematieres">blabla</div>).

Dans les articles, le modèle s’utilise ainsi :

<table_des_matieresXXX>XXX est le numéro de l’article dont vous souhaitez afficher la table des matières.

Dans les squelettes, vous pouvez utiliser :

[(#MODELE{table_des_matieres}{id=XXX})]XXX est le numéro de l’article dont vous souhaitez afficher la table des matières. Notez que XXX peut aussi être une balise comme #ID_ARTICLE.

Comme indiqué précédemment, notez que les intertitres des enluminures typographiques sont compatibles avec ce modèle.

Des renvois vers un intertitre (ou autre)

Ce plugin fournit un autre modèle <renvoi>. Il permet d’afficher l’intertitre d’une sous-partie précise d’un article avec un lien vers elle.

Dans les articles il s’utilise ainsi :

<renvoiXXX|partie=YYY>XXX est le numéro de l’article et YYY est le numéro de la sous-partie. Que l’intertitre soit numéroté ou non, le numéro de la sous-partie est de la forme x.y.z... [3].

À partir de L’exemple des outils qui est présenté au début de cet article : <renvoi2567|partie=1.2.3.3> donnera :

À bois

(2567 est le numéro de cet article et 1.2.3.3 correspond à la sous-partie sur le ciseau à bois... Si si ! comptez...)

Donc, écrire <renvoiXXX|partie=YYY> équivaut à écrire [intertitre de la sous-partie YYY|un extrait avec les 20 premiers mots de la sous-partie (...)->XXX#YYY] sauf que l’intertitre et l’extrait sont déterminés automatiquement par le modèle (et modifiés automatiquement si quelqu’un modifie l’article auquel on renvoie).

Dans les squelettes, le principe est le même, et la syntaxe est :

[(#MODELE{renvoi}{id=XXX}{partie=YYY})]

Comme indiqué précédemment, notez que les intertitres des enluminures typographiques sont compatibles avec ce modèle.

Des extraits d’articles ou de sous-parties d’articles

Voici deux modèles <extrait> et <extrait|partie> qui permettent d’afficher des morceaux d’articles ou de sous-parties d’articles.

Pour afficher un extrait d’article dans un autre article, il faut utiliser le modèle <extraitXXX|debut=YY|taille=ZZ>XXX est le numéro de l’article. debut et taille sont optionnels [4]. taille permet de fixer le nombre de mots à afficher dans l’extrait. debut permet de déterminer à partir de quel mot commencer l’extrait (debut est le n° de ce mot, la numérotation commence à 0).

Ex. : <extrait2567|debut=55|taille=38> permet d’afficher un extrait de 38 mots de l’article n°2567 (c’est celui-ci) à partir du 55e mot.

Notez pour la présentation et l’aspect sémantique que les extraits sont affichés entre balises <quote>extrait de l'article</quote>. Ils sont précédés de « (...) » si l’extrait ne commence pas au mot 0, et toujours terminés par « (...) ».

Les raccourcis typographiques qui étaient présents dans les extraits sont retirés automatiquement (le texte passe dans le filtre textebrut).

Il est aussi possible de faire des extraits d’une sous-partie du texte d’un article. Une sous-partie est un morceau du texte délimité par des intertitres de même niveau.

Le principe à peu près le même que pour le modèle précédent.

Pour afficher un extrait d’une sous-partie dans un autre article, il faut utiliser <extraitXXX|partie|partie=x.y.z|debut=YY|taille=ZZZ> qui fonctionne comme précédemment sauf que partie=x.y.z correspond au numéro de l’intertitre de la sous-partie dont on souhaite afficher l’extrait. Voir la documentation des renvois ci-dessus.

Ex. : <extrait2567|partie|partie=1.2.3.3|debut=4|taille=5> permet d’afficher un extrait de 5 mots de la partie sur le ciseau à bois (n°1.2.3.3) de l’article n°2567 (c’est celui-ci) à partir du 4e mot.

Comme précédemment la citation est dépourvue de raccourci typographique. Sauf l’intertitre qui est rajouté au début de la citation.

Bien sûr, ces deux modèles peuvent être utilisés dans les squelettes :

-  [(#MODELE{extrait}{id=XXX}{debut=YY}{taille=ZZZ})]
-  [(#MODELE{extrait_partie}{id=XXX}{partie=x.y.z}{debut=YY}{taille=ZZZ})]

Comme indiqué précédemment, notez que les intertitres des enluminures typographiques sont compatibles avec ce modèle.

Quelques filtres pour afficher des morceaux signifiants d’un article

Ces filtres sont tirés de la contrib’ Résumé d’article automatique.

Compatibilité

Les intertitres fournis par le plugin Plugin Enluminures typographiques pour SPIP 1.9.2 de RealET qui s’écrivent {2{, {3{, {4{, etc. sont pris en compte par ce plugin avec les équivalences : {1{={{{*={{{, {2{={{{**, etc.

Le plugin les transforme à la volée, si bien qu’ils fonctionnent pour tous les modèles, comme si ils étaient écrits avec des {{{*(...)*.

Les utilisateurs de la contrib’ de mortimer et chtitux dont est tiré ce plugin (Génération automatique de numérotation, table des matières et références) auront peu de changements à faire car il y a une certaine compatibilité ascendante.

Il faut noter cependant que :

-  dans la contrib’ originelle, les intertitres étoilés ({{{*(...)*) généraient une numérotation automatique des titres. Désormais, cette numérotation est réservée aux intertitres avec des #. Donc, si vous souhaitez conserver la numérotation, il faudra transformer les * en # dans les articles.
-  La balise #TABLEMATIERES qui placée dans les articles, affichait la table des matières est remplacée par le modèle <table_des_matières> (ce qui permet de choisir entre mettre une table des matières dans les articles ou dans les squelettes). Dans ce plugin #TABLEMATIERES affiche un lien vers la table des matières présente dans la page (lien vers l’ancre « table_des_matieres ») et non la table des matières elle-même.
-  Dans la contrib’ originelle, les raccourcis des intertitres étaient remplacés par des <h3 class="spipheadx">

x est le niveau de titre. Ce plugin les remplace par des <hx class="spip"> ce qui est plus correct du point de vue sémantique/accessibilité.
-  La contrib’ permettait de personnaliser les ancres présentes dans les intertitres (ex. : {{{**mon titre <mon_ancre_à_moi>}}}). Cela reste fonctionnel dans ce plugin et fonctionne avec les modèles.

Changements depuis la toute première version :

  • Version 0.9.4 du 31/07/2012
    Compatibilité SPIP 3.0.
  • Version 0.6 du 08/02/09 :
    correction du bug signalé par gilcot dans le forum corrigé.
  • Version 0.5 du 24/01/09 :
    • L’ancre table_des_matieres est désormais sans accent... C’est plus pratique !
    • Les ancres sont protégées dans le filtre extrait_lien (avant les ancres étaient listées comme des liens)
    • Les caractères accentués sont remplacés par des entités dans le code généré par le plugin
    • des css pour les intertitres du site public (idéal pour ceux qui restent avec la dist. Les autres devront créer les leurs)
    • Compatible Spip 2 grâce au passage aux pipelines (plutôt que les options)
    • renommage de fichiers et de fonctions (attention à ceux qui surchargent)
  • Version 0.4 du 19/12/08 :
    • Amélioration de Stéphane Deschamps : désormais les variables $GLOBALS['debut_intertitre'] et $GLOBALS['fin_intertitre'] sont prises en compte dans la numérotation des headlines des intertitres, quand elles sont définies par le webmestre.
    • Les balises <code> sont protégées dans les extraits
    • Les modèles prennent désormais en compte tous les articles (quel que soit leur statut).
    • Le bug des tables des matières externes est corrigé. Vous pouvez par exemple mettre un <table_des_matieres122> dans l’article 245 sans souci.
  • Version 0.3 du 04/10/08 :
    • Correction d’un bug qui dupliquait les notes de bas de page.
  • Version 0.2 du 21/09/08 :
    • Correction d’un gros bug qui empêchait le plugin de fonctionner correctement (disparition des images ou des autres modèles après un renvoi dans un article).
    • Toutes petites améliorations typographiques.

Développements futurs

-  intégration dans la barre typo V2 (voir travaux de gilcot dans le forum)
-  faire des modèles supplémentaires (notamment pour exploiter les filtres de Résumé d’article automatique), et documenter tout ça ici même.
-  faire en sorte que les intertitres hiérarchisés soient pris en compte par les contribs/plugin qui produisent autre chose que du HTML (du PDF par exemple).

Ce plugin sous licence GPL est développé dans SPIP-Zone, vous êtes donc les bienvenus pour prendre part à son développement.

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

P.-S.

En attendant la réalisation d’un logo spécifique, le logo de cet article est une photo de timetrax23 sous licence Creative Commons « Paternité-Partage des Conditions Initiales à l’Identique 2.0 Générique » que vous retrouverez .

Notes

[1Les modifications principales sont :

-  mise en plugin
-  des * pour les titres non numérotés
-  des # pour les titres numérotés
-  #TABLEMATIERES renvoie désormais vers une table des matières située ailleurs grâce au modèle <table_des_matieres>
-  etc.

[2Si vous avez fixé une valeur de $GLOBALS['debut_intertitre'] et $GLOBALS['fin_intertitre'], elle est prise en compte grâce à une modification de Stéphane Deschamps : les intertitres sont numérotés à partir de cette valeur. Voir aussi le message de Stéphane.

[3Notez que ce modèle utilise les ancres, il est donc possible de mettre n’importe quelle ancre de l’article à la place de YYY, s’il n’y a pas d’intertitre associé à l’ancre choisie, le modèle renvoie à la place le titre de l’article

[4si debut et taille ne sont pas indiqués, ce sont leurs valeurs par défaut qui sont utilisées, c’est-à-dire 0 pour debut et 20 pour taille

Dernière modification de cette page le 3 avril 2015

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 8 septembre 2015 à 11:38, par Perline En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

    J’ai vraiment trouvé ce plugin parfait pour ce que je veux faire.
    Malheureusement, comme pour d’autres avant moi, les liens vers les titres et même les affichages ne marchent pas.
    Aucune ancre n’apparaît dans le code source.
    Il semble que les codes soient mal lus.
    En effet, les raccourcis {{{  }}} et {{{**}}} sont tous deux interprétés de la même manière, précédés d’un <h3>.
    Comme je vois le plugin compatible avec la 3.1, pas encore sortie, j’imagine qu’il est suivi :)
    Comme un petit clic vaut mieux qu’un long discours, voici par exemple une page qui montre mon problème.
    Merci de votre aide.
    Spip 3.0.20., plugin 0.9.9

    Répondre à ce message

  • Le 19 août 2014 à 23:08, par associate-it En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

    Bonjour,

    Je recontre un bug très gênant sur les liens du sommaire générés par ce plugin (version 0.9.6 installé sur spip 3.0.16) par ailleurs très utile (je rejoins l’avis de G, il devrait être intégré dans le core). Lorsque que je veux afficher un sommaire non numéroté ayant plus d’un niveau, il semble que les liens des titres au delà du premier niveau dans le sommaire ne soit pas correctement générés.
    Les ancres des titres au delà du premier niveau ne sont pas non plus générées (peut êter la source du problème).
    J’ai copié ci-dessous un exemple de menu très simple avec le code html qu’il génère pour illustrer le problème :

    Sommaire non numéroté (testé aussi avec la syntaxe d’enluminure typographique 2, 3, etc. , même résultat)

    Code spip

    1. <table_des_matieres2714>
    2. {{{*Titre 1}}}
    3. {{{*Titre 2}}}
    4. {{{*Titre 3}}}
    5. {{{**Sous titre 1}}}
    6. {{{***Sous sous titre 1}}}
    7. {{{*Titre 4}}}

    Télécharger

    html généré : on voit que le lien vers le titre de niveau 2 « sous titre 1 » n’est pas correct, et tous les liens qui suivent non plus. Ce lien devrait être test-Newsletter-ALFA-7-July-August.html#sous-titre-3 au lieu de test-Newsletter-ALFA-7-July-August.html#titre-3. On voit aussi que les ancres au niveau des titres ne sont pas du tout générées pour le sous titre de niveau 2 et le sous sous titre de niveau 3.

    1. <div class="texte surlignable"><a id="table_des_matieres" name="table_des_matieres"></a><div id="tablematiere">
    2. <ul><li><a href="test-Newsletter-ALFA-7-July-August.html#titre" title="Aller directement &agrave; &laquo;&nbsp;Titre 1&nbsp;&raquo;">Titre 1</a></li>
    3. <li><a href="test-Newsletter-ALFA-7-July-August.html#titre-1" title="Aller directement &agrave; &laquo;&nbsp;Titre 2&nbsp;&raquo;">Titre 2</a></li>
    4. <li><a href="test-Newsletter-ALFA-7-July-August.html#titre-2" title="Aller directement &agrave; &laquo;&nbsp;Titre 3&nbsp;&raquo;">Titre 3</a><ul>
    5. <li><a href="test-Newsletter-ALFA-7-July-August.html#titre-3" title="Aller directement &agrave; &laquo;&nbsp;Sous titre 1&nbsp;&raquo;">Sous titre 1</a><ul>
    6. <li><a href="test-Newsletter-ALFA-7-July-August.html#sous-sous-titre-4" title="Aller directement &agrave; &laquo;&nbsp;Sous sous titre 1&nbsp;&raquo;">Sous sous titre 1</a></li>
    7. </ul></li>
    8. </ul></li>
    9. <li><a href="test-Newsletter-ALFA-7-July-August.html#titre-3-5" title="Aller directement &agrave; &laquo;&nbsp;Titre 4&nbsp;&raquo;">Titre 4</a></li>
    10. </ul>
    11. </div>
    12.  
    13. <h3 class="spip"><a id="titre" name="titre"></a><a id="a1" name="a1"></a>Titre 1</h3>
    14.  
    15. <h3 class="spip"><a id="titre-1" name="titre-1"></a><a id="a2" name="a2"></a>Titre 2</h3>
    16.  
    17. <h3 class="spip"><a id="titre-2" name="titre-2"></a><a id="a3" name="a3"></a>Titre 3</h3>
    18. <h4 class="spip">Sous titre 1</h4><h5 class="spip">Sous sous titre 1</h5>
    19. <h3 class="spip"><a id="titre-3" name="titre-3"></a><a id="a4" name="a4"></a>Titre 4</h3></div>

    Télécharger

    Le code spip du même menu, mais numéroté

    1. <table_des_matieres2714>
    2.  
    3. {{{#Titre 1}}}
    4.  
    5. {{{#Titre 2}}}
    6.  
    7. {{{#Titre 3}}}
    8. {{{##Sous titre 1}}}
    9. {{{###Sous sous titre 1}}}
    10. {{{#Titre 4}}}

    Télécharger

    Cette fois, le code html est correct.

    1. <div class="texte surlignable"><a id="table_des_matieres" name="table_des_matieres"></a><div id="tablematiere">
    2. <ul><li><a href="test-Newsletter-ALFA-7-July-August.html#titre" title="Aller directement &agrave; &laquo;&nbsp;1- Titre 1&nbsp;&raquo;">1- Titre 1</a></li>
    3. <li><a href="test-Newsletter-ALFA-7-July-August.html#titre-1" title="Aller directement &agrave; &laquo;&nbsp;2- Titre 2&nbsp;&raquo;">2- Titre 2</a></li>
    4. <li><a href="test-Newsletter-ALFA-7-July-August.html#titre-2" title="Aller directement &agrave; &laquo;&nbsp;3- Titre 3&nbsp;&raquo;">3- Titre 3</a><ul>
    5. <li><a href="test-Newsletter-ALFA-7-July-August.html#sous-titre-3" title="Aller directement &agrave; &laquo;&nbsp;3.1- Sous titre 1&nbsp;&raquo;">3.1- Sous titre 1</a><ul>
    6. <li><a href="test-Newsletter-ALFA-7-July-August.html#sous-sous-titre-4" title="Aller directement &agrave; &laquo;&nbsp;3.1.1- Sous sous titre 1&nbsp;&raquo;">3.1.1- Sous sous titre 1</a></li>
    7. </ul></li>
    8. </ul></li>
    9. <li><a href="test-Newsletter-ALFA-7-July-August.html#titre-5" title="Aller directement &agrave; &laquo;&nbsp;4- Titre 4&nbsp;&raquo;">4- Titre 4</a></li>
    10. </ul>
    11. </div>
    12.  
    13. <h3 class="spip"><a id="titre" name="titre"></a><a id="a1" name="a1"></a>1- Titre 1</h3>
    14.  
    15. <h3 class="spip"><a id="titre-1" name="titre-1"></a><a id="a2" name="a2"></a>2- Titre 2</h3>
    16.  
    17. <h3 class="spip"><a id="titre-2" name="titre-2"></a><a id="a3" name="a3"></a>3- Titre 3</h3>
    18.  
    19. <h4 class="spip"><a id="sous-titre-3" name="sous-titre-3"></a><a id="a3.1" name="a3.1"></a>3.1- Sous titre 1</h4>
    20.  
    21. <h5 class="spip"><a id="sous-sous-titre-4" name="sous-sous-titre-4"></a><a id="a3.1.1" name="a3.1.1"></a>3.1.1- Sous sous titre 1</h5>
    22.  
    23. <h3 class="spip"><a id="titre-5" name="titre-5"></a><a id="a4" name="a4"></a>4- Titre 4</h3></div>

    Télécharger

    Répondre à ce message

  • Le 13 mars 2009 à 14:58, par G En réponse à : Bugs dans les références de la TdM

    Salut à vous,

    Je suis désolé, j’ai encore trouvé un bug... Plutôt que d’expliquer une heure, voici le code qui bugge. Si je fais l’article suivant :

    <table_des_matieres127>


    {{{COR DE CHASSE}}}

    {{{** Pipo}}}
    {{{*** Flutiau}}}
    {{{*** Flutiau}}}
    {{{*** Flutiau}}}
    {{{** Pipo}}}
    {{{*** Flutiau}}}
    {{{*** Flutiau}}}
    {{{*** Flutiau}}}

    J’obtiens la bonne table des matières mais les liens ne marchent pas tous, car les références des ancres dans la table des matières ne sont pas les mêmes que dans le corps de l’article.

    Voici le code source de la page HTML produite, où l’on voit que les ancres s’appellent dans la TdM
    -  1.1, 1.1.1, 1.1.2, 1.1.3
    -  1.2, 1.2.4, 1.2.5, 1.2.6

    (notons que l’on ne reprend pas à 1.2.1 comme on aurait pu s’y attendre, mais bon, pourquoi pas...)

    PAR CONTRE, dans le corps de l’article les références sont :
    -  1.1, 1.1.1, 1.1.1, 1.1.1
    -  1.1, 1.1.1, 1.1.1, 1.1.1

    Du coup, ça ne marche pas très bien...

    Peut-être (espérons-le) juste un $i++ manquant...

    <div class="texte"><a name="table_des_matieres"></a><div id="tablematiere">
    <ul><li><a href="spip.php?article127#1" title="Aller directement &agrave;          &laquo;&nbsp;COR DE CHASSE&nbsp;&raquo;">COR DE CHASSE</a><ul>

    <li><a href="spip.php?article127#1.1" title="Aller directement &agrave;          &laquo;&nbsp; Pipo&nbsp;&raquo;"> Pipo</a><ul>
    <li><a href="spip.php?article127#1.1.1" title="Aller directement &agrave;          &laquo;&nbsp; Flutiau&nbsp;&raquo;"> Flutiau</a></li>
    <li><a href="spip.php?article127#1.1.2" title="Aller directement &agrave;          &laquo;&nbsp; Flutiau&nbsp;&raquo;"> Flutiau</a></li>
    <li><a href="spip.php?article127#1.1.3" title="Aller directement &agrave;          &laquo;&nbsp; Flutiau&nbsp;&raquo;"> Flutiau</a></li>
    </ul></li>
    <li><a href="spip.php?article127#1.2" title="Aller directement &agrave;          &laquo;&nbsp; Pipo&nbsp;&raquo;"> Pipo</a><ul>
    <li><a href="spip.php?article127#1.2.4" title="Aller directement &agrave;          &laquo;&nbsp; Flutiau&nbsp;&raquo;"> Flutiau</a></li>

    <li><a href="spip.php?article127#1.2.5" title="Aller directement &agrave;          &laquo;&nbsp; Flutiau&nbsp;&raquo;"> Flutiau</a></li>
    <li><a href="spip.php?article127#1.2.6" title="Aller directement &agrave;          &laquo;&nbsp; Flutiau&nbsp;&raquo;"> Flutiau</a></li>
    </ul></li>
    </ul></li>
    </ul>
    </div>

    <h3 class="spip"><a name='1'></a>COR DE CHASSE</h3>
    <h4 class="spip"><a name='1.1'></a> Pipo</h4>
    <h5 class="spip"><a name='1.1.1'></a> Flutiau</h5>
    <h5 class="spip"><a name='1.1.1'></a> Flutiau</h5>
    <h5 class="spip"><a name='1.1.1'></a> Flutiau</h5>
    <h4 class="spip"><a name='1.1'></a> Pipo</h4>
    <h5 class="spip"><a name='1.1.1'></a> Flutiau</h5>
    <h5 class="spip"><a name='1.1.1'></a> Flutiau</h5>
    <h5 class="spip"><a name='1.1.1'></a> Flutiau</h5></div>                       

    Merci en tous les cas pour votre super plugin dont on ne comprend pas qu’il ne soit pas intégré dans le core depuis longtemps...

    À bientôt,

    G.

    Répondre à ce message

  • Le 31 juillet 2012 à 10:33, par Alain En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

    Bonjour,

    Il n’y a pas de version prévue pour SPIP 3 ?

    Répondre à ce message

  • Le 22 février 2012 à 18:30, par Peetdu En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

    Bonjour et merci pour ce plugin.

    Existe t-il un paramètre qui permet de limiter la génération de la table des matières à un niveau d’intertitre déterminé ?

    Exemple :
    j’ai un texte avec

    -{{{LALALA}}}
    -*  {{{*titi}}}
    -*  {{{*toto}}}
    -{{{LILILI}}}
    -*  {{{*tutu}}}
    -*  {{{*tata}}}

    et d’obtenir

    Table des Matières
    -  LALALA
    -  LILILI

    ...grâce à un paramètre MAX_INTERTITRE = 1 (dans le cas ci-dessus)

    Répondre à ce message

  • Le 2 septembre 2011 à 17:15, par Paladin En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

    Hello,

    Constaté avec le plugin en v.0.7 sous SPIP 2.1.10 (installation propre, vide,
    sans autre plugin)

    J’ai un petit souci avec les ancres :

    -  squelette rubrique (ou sommaire d’ailleurs)
    -  boucle ARTICLES pour une rubrique
    -  > les ancres générées ont toutes le même id « a1 ». Ca ne facilite pas le lien URL avec ancre accompagnée
    (ex. : http://monsite/#a1 au lieu de http://monsite/#mot-cle-important).

    Bon, ceci dit, une TOC dans une page rubrique, c’est vraiment un cas particulier. Qui peut
    être résolu simplement dans le squelette lui-même. Sauf le duplicata de a1 qui génère une erreur
    de validation XHTML. Mais ce n’est pas bloquant.

    J’ai un autre problème : la composition du nom de cette ancre (ici, « a1 »). Peu explicite,
    et probablement peu performant côté référencement, il serait mieux d’avoir une ancre composée des mots forts du titre, incrémenté en cas de duplicata.

    J’ai commencé une adaptation dans ce sens, mais IntertitresTdm_table_des_matieres()
    génère à la volée en commencant par le TOC puis en générant les ancres par titre rencontré,
    en incrémentant le « a » comme seule racine (préfixe) de l’ancre.

    Dans mon objectif, créer une ancre en fonction du titre serait plus
    aisé en créant l’ancre avant de la référencer dans le TOC.

    Dernier souci : un inter-titre qui contient un lien disparait.
    Exemple :

    {{{[Je suis visible dans l'éditeur->/mais_je_disparais_à_la_compilation]}}}

    Merci.

    • Le 2 septembre 2011 à 17:44, par Beurt En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Salut,

      Ce plugin est l’adaptation d’une contrib’ fort ancienne et la question de son évolution s’est posée sur la zone il y a quelques mois notamment à l’occasion de l’arrivée de textwheel pour gérer la typo dans Spip >3. Joseph a commencé un carnet sur contrib, dans lequel il détaille quelques idées d’un ensemble de plugins dédiés aux intertitres et aux tables des matières : Évolutions Table des matières / Intertitres hiérarchisés.

      Je pense que tes modifs seraient plus pérennes si tu repartais de cette base (dont le code sera sans doute moins contraignant).

      Ça fait longtemps que le carnet a été commencé, je ne sais pas si Joseph a eu le temps d’avancer là dessus.

      À court terme deux solutions :

      -  Pour ton squelette rubrique : faire une petite modif sur le nom de l’ancre. ex. : #a_XXX_2.3 (où XXX est l’id_article)
      -  Pour les noms « sémantiques » la contrib’ permet de choisir le nom de l’ancre avec {{{** ma section <nom_ancre>}}}.

      Hélas, pour le lien, autant que pour ton précédent message sur la surcharge typo des intertitres, je pense que c’est du côté de l’expression régulière qu’il faudrait voir ça, mais je n’ai pas de solution.

    • Le 4 septembre 2011 à 16:32, par Paladin En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Grand merci.
      Je ne connaissais pas les notes du carnet.
      L’astuce {{{** ma section <nom_ancre>}}} ne fonctionne pas. Le lien est bien généré par SPIP, mais preg_match de IntertitresTdm_table_des_matieres() le fait disparaître
      J’ai une version corrigée à proposer pour les ancres « sémantiques ».
      Je commit ou ça ne vaut pas le cout ?

    • Le 4 septembre 2011 à 17:01, par Beurt En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Salut,

      Si ça e casse rien et que le job est déjà fait, bien sûr que tu peux commiter ! Je t’expliquais pour le carnet au cas où tu envisageais de commencer un dév, qu’il valait peut-être mieux partir sur les nouvelles bases.

      En revanche, je te conseille en même temps que ton commit de compléter le carnet en indiquant quels changements il apporte (pour compatibilité ascendante). Peut-être aussi la doc ici (je vais te rajouter comme auteur).

    • Le 4 septembre 2011 à 17:42, par Paladin En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Ok ! Commit :
      -  les ancres sont construites sur le contenu de l’inter-titre (les mots, à condition que sa taille > 2)
      -  en tenant compte que l’inter-titre soit présent plusieurs fois dans la page (dans ce cas, incrémente l’ancre —> ce qui permet d’avoir plusieurs inter-titres avec le même contenu )
      -  en tenant compte que l’inter-titre contient déjà une ancre

      En cas de bug (les ?) merci de votre retour.

    • Le 4 septembre 2011 à 18:03, par Beurt En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Super.

      je viens de parcourir le code et je comprends donc que désormais il n’y plus d’ancre de type a_2.3.1 ?

    • Le 4 septembre 2011 à 19:10, par Paladin En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Exact ! Là, c’est parti sur des ancres nommées dont la composition (la construction) est basée sur le contenu texte du titre et où la longueur du mot > 2

    • Le 4 septembre 2011 à 19:52, par Beurt En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Aïe ! du coup c’est plus compatible avec les modèles présents dans le plugin (renvoi, extrait) ! Il faudrait pouvoir mettre une ancre de plus avec l’ancien système (a3.2.1).

    • Le 5 septembre 2011 à 09:11, par Paladin En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Ah ! Désolé. Pas vu.
      Corrigé (enfin j’espère).

    • Le 7 septembre 2011 à 11:27, par Beurt En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Je te prie de m’excuser pour a réponse tardive : je n’ai pas encore eu le temps de tester (peut-être ce WE), en tout cas, merci pour la prise en compte de ce problème !

    • Le 7 septembre 2011 à 12:36, par Paladin En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Y’a pas de mal.
      J’ai trouvé un autre bug. Sur mon site, la hiérarchie de la table est incorrecte. Je suis dessus.

    • Le 7 septembre 2011 à 16:02, par Paladin En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Ok. C’est corrigé.
      J’en ai profité pour corriger également le fait que les inter-titres avec un lien disparaissaient.
      Et le fichier de langue.

    • Le 7 septembre 2011 à 16:06, par Beurt En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Génial, je suis impatient d’avoir un moment pour tester !

    • Le 7 septembre 2011 à 16:31, par Paladin En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Ok. Les inter-titres contenant le même contenu ont maintenant droit à une ancre distincte.
      Et l’astuce {{{** ma section <nom_ancre>}}} permet de forcer cette ancre.
      Si on place une ancre au format html, c’est le ID qui est pris en compte, pas le NAME.
      J’arrête pour le moment.
      Merci.

    Répondre à ce message

  • Le 11 août 2011 à 13:02, par Paladin En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

    Hello,
    Testé en v.0.7 du plugin.
    Juste un petit souci avec les sous-titres contenant du gras. Exemple :

    Portez ce vieux whisky au {{juge blond qui fume}}.

    {{{Portez ce vieux whisky au {{juge blond qui fume}}}}}

    génère un

    Portez ce vieux whisky au 1.
    Portez ce vieux whisky au

    Le strong est mangé par le preg_match_all.

    En ajoutant un espace entre les accolades de fin de gras, dans le sous-titre :

    Portez ce vieux whisky au {{juge blond qui fume}}.

    {{{Portez ce vieux whisky au {{juge blond qui fume}} }}}

    la génération est correcte :

    Portez ce vieux whisky au juge blond qui fume.
    Portez ce vieux whisky au juge blond qui fume

    Merci pour ce plugin.

    Répondre à ce message

  • Le 12 février 2011 à 23:49, par Steph en Bretagne En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

    Helloooo,

    Bon, je viens de passer de SPIP 2.010 à SPIP 2.1.8. avec mise à jour de ce plugin.
    Mes ancres et mes tables des matières ne fonctionnent plus. Une vraie cata.

    Exemples :

    -  sur cette page (en l’occurrence faite à la main), aucun des liens en gris (ceux de niveau 2) ne fonctionne plus.

    -  sur cette autre page, on remarque que si on clique sur les titres de niveau 1 du sommaire, on descend à la bonne ancre mais que cela ne fonctionne pas pour ceux de niveau 2.

    Je précise que j’utilise aussi les Enluminures (à jour).

    Merci de m’aider à rétablir les comportements que j’avais avant la mise à jour.

    • Le 15 février 2011 à 20:52, par Beurt En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Salut !

      J’ai fait plusieurs tests avec Spip 2.1.8 sans avoir les problèmes que tu rencontres. Il semble que les ancres de second niveau ne soient pas générées chez toi... Alors que le niveau d’intertitre et le sommaire, oui... étrange...

      Je cale ! d’autant que je ne reproduis pas ton bug ! (ex. de site sous 2.1.8 avec les intertitres : http://svt.ac-creteil.fr tu peux voir que ça fonctionne...)

    • Le 15 février 2011 à 22:29, par Steph en Bretagne En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Bonsoir Beurt,

      Merci pour ta réponse !

      Je suis allée voir sur le site svt.ac-creteil mais je n’ai pas trouvé d’article avec des intertitres hiérarchisés (j’ai dû mal chercher). Utilisent-ils les enluminures aussi ?

      Sinon, avant de saisir mon commentaire, j’avais fait un test sur le site de mon père et le bug se reproduisait chez lui aussi. C’est pour ça que j’avais imaginé que cela venait du plugin lui-même. D’autant que tout marchait parfaitement avant les maj.

      Autre particularité, je suis sous Sarka 3.0.4, mais ... tu crois que ça pourrait venir de là ?

    • Le 15 février 2011 à 22:47, par Beurt En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Non je n’utilise pas les Enluminures... ex d’utilisation (sur la Une du site) : http://svt.ac-creteil.fr/?Urland-Pa... le sommaire est à droite et se déplie tout seul (cf partie 2).

      Utilises-tu les enluminures ?

    • Le 15 février 2011 à 22:56, par Steph en Bretagne En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Ah oui, cette fois je vois :-) ça marche sur ce site.

      Oui, j’utilise les enluminures comme indiqué le 12 février. Je viens de faire un test et, si je désactive enluminures, ça remarche. Il y a donc un pb de compatibilité entre les nouvelles versions de ces plugins...

      Si je peux faire cobaye pour trouver ce qui cloche, je suis toute prête parce que j’utilise les sommaires sur tous mes articles ;-)

    • Le 23 février 2011 à 10:20, par Beurt En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Il y a bien un problème d’incompatibilité. Et de ce que je comprends, il est — paradoxalement — apparu lorsque les enluminures ont adopté des raccourcis compatibles à ceux des intertitres (avec les étoiles).

      Plus précisément, je crois que le problème est le suivant :
      Les enluminures modifient le texte avant que les raccourcis ne soient traités par Spip (on dit que le traitement se fait en « pre_propre », « propre » étant la fonction de Spip qui traite les raccourcis). Or, les intertitres, eux, font leurs modifications après ! Donc, quand les intertitres tentent de faire la table des matières, les « * » et les « # » qu’ils utilisent ne sont plus là, car les enluminures les ont retirés.

      La solution serait que les enluminures débrayent leur traitement des intertitres quand le plugin intertitre hiérarchisé est présent, mais je ne sais pas comment on fait et ait assez peu de temps pour étudier ça... Peut-être que RealET (auteur des enluminures) a une idée ?

      (NB : posté aussi dans la liste spip-user)

    • Le 26 février 2011 à 12:39, par Laurie En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Bonjour,

      J’ai le même problème que Steph : http://droit-des-societes.eu/?Lois-et-reglements

      J’avais trouvé comme solution de réinstaller et désinstaller « Enluminures » mais maintenant, j’ai beau le réisntaller, ses fonctionnalités n’apparaissent plus....

      Laurie

    Répondre à ce message

  • Le 27 janvier 2011 à 15:03, par Michael P. En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

    Les variables $GLOBALS[’debut_intertitre’] et $GLOBALS[’fin_intertitre’] ne marchent pas du tout chez moi, avec la version « Revision : 42616 » du plugin.

    Dès que j’initialise ces variables, les titres s’affichent en h3, avec une, deux ou trois étoiles.

    Suis-je le seul dans ce cas ?

    Sinon j’aimerais commencer les titres au niveau H1. Quelqu’un a-t-il déjà fait cela ?

    Répondre à ce message

  • Le 8 janvier 2011 à 12:53, par Pierre En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

    Bonjour,

    Merci pour le boulot sur ce plugin. Je pense avoir détecté un petit bug.

    Les variables globales $GLOBALS[’debut_intertitre’] et $GLOBALS[’fin_intertitre’] sont bien prises en compte dans la génération des ancres dans le texte. Dans mon cas par ex, j’ai demandé à démarrer à h2, mes ancres commencent bien à h2.

    Par contre, dans la génération de la table des matières, si on a choisi comme moi h2 en niveau de base, la table des matières n’est toujours générée qu’à partir du niveau suivant h3 (c’est à dire que je n’ai pas les titres de niveau h2 dans la tdm).

    J’ai corrigé ces lignes (63 et 64 ici), en remplaçant « 3 » par « 2 » dans l’expression régulière du trim :

    1. // pour que les différents niveaux d'intertitres soient gérés quand on repasse sur le texte dans le cadre d'un filtre avec tableseule
    2. if ($tableseule) {
    3. $my_debut_intertitre=trim("\n<h([2-9]) class=\"spip\">");
    4. $my_fin_intertitre=trim("</h[2-9]>\n");
    5. }

    Télécharger

    Je suis pas sûr de la modif dans le sens ou je n’utilise pas « tableseule » ... par contre dans mon cas je l’utilise dans un squelette, pas dans l’article, ceci expliquant peut-être cela. En tout cas ça résout direct le souci. Votre avis ?

    Mci. Pierre.

    • Le 8 janvier 2011 à 13:33, par Pierre En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Re-slt ...
      Entre temps j’ai pris la version svn pour être sûr d’avoir la vraiment dernière version. Ma modif casse autre chose, je n’ai pas la bonne hiérarchie des id dans la TDM ... et je constate en revenant en arrière quelque chose que je n’avais pas vu.
      Il me manque donc toujours mon premier niveau (les h2) mais je constate en plus que le niveau h3 est identifié avec les id du niveau h2 (par ex mon premier h3 pointe vers l’id a1 qui est l’id de mon premier h2 en fait).
      Je pense que ce bug peut facilement passer totalement inaperçu car on a souvent un premier sous-titre h3 juste après un titre h2, donc l’ancre arrive à peu près au bon niveau...
      Je suis le seul dans ce cas ou c’est vraiment un bug ?
      Mci. Pierre.

    • Le 8 janvier 2011 à 13:47, par Pierre En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Slt

      Bon je trouve pas l’erreur, mais dès que je supprime les $GLOBALS[’debut_intertitre’] et $GLOBALS[’fin_intertitre’], tout refonctionne parfaitement, donc je pense que ç’est à ce niveau que quelque chose est mal pris en compte.

      De 3 à 6 ça laisse encore 4 niveau de titre, ça devrait le faire :-), j’ai pas le temps de creuser plus avant pour l’instant.

      Pierre.

    • Le 15 février 2011 à 20:55, par Beurt En réponse à : Des intertitres hiérarchisés et des outils pour les manipuler

      Désolé, je n’ai pas testé le contrôle des niveaux d’intertitres introduits dans le code par Stéphane D.

      Si quelqu’un arrive à les faire fonctionner il pourra peut-être te conseiller...

    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

  • Metas +

    3 décembre – commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Import ICS 2 (agenda distant)

    2 août – 35 commentaires

    La version 2 du plugin « import ICS » en reprend la principale fonctionnalité, à savoir l’ajout automatique d’évènements distants dans la liste des évènements d’un site. À la différence de la première version, elle ne dépend pas du plugin « Séminaire » et est (...)

  • Newsletters

    16 janvier 2013 – 374 commentaires

    Ce plugin permet de composer des Info-lettres. Par info-lettre, on désigne ici le contenu éditorial qui va être composé et envoyé par courriel à une liste d’inscrits. Le plugin permet de composer une info-lettre à partir d’un modèle pré-composé, (...)

  • CKeditor 3.0

    4 octobre 2009 – 1217 commentaires

    CKeditor est l’évolution de l’éditeur WYSIWYG : FCKeditor, avec ce plugin vous pourrez utiliser cet éditeur à la place de l’éditeur de spip tout en laissant le choix à vos auteurs de l’éditeur qu’ils préfèrent utiliser. Attention : cet éditeur WYSIWYG (...)

  • GIS 4

    11 août 2012 – 1284 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

Ça spipe par là