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

Des intertitres auxquels on peut faire appel...

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 :

Intertitres hiérarchisés et table des matières (0.9.15)

(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.

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

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 .

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

Discussion

31 discussions

  • 6

    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.

    • 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...)

    • 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à ?

    • 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 ?

    • 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 ;-)

    • 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)

    • 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

  • 1
    Michael P.

    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 ?

    • 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

  • 3

    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 :

      // 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
      if ($tableseule) {
    	$my_debut_intertitre=trim("\n<h([2-9]) class=\"spip\">");
    	$my_fin_intertitre=trim("</h[2-9]>\n");
    	}

    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.

    • 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.

    • 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.

    • 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

  • 7

    Bonjour

    Juste un petit truc : normalement en xhtml le nom des ancres doit commencer par un caractère alphabétique, donc pas par un chiffre. Ce qui est le cas avec ce plugin... C’est possible de changer ca ?

    • Ah...

      Tu pointes un gros souci : actuellement, le plugin utilise des <a name="XXX"> dans lesquels l’utilisation de valeurs numériques ne pose pas de problème, mais qui ne sont encore corrects qu’en xhtml transitionnal, pas en strict.

      En strict, il faut utiliser les id="XXX", mais qui n’acceptent pas de commencer par autre chose qu’un alphabétique.

      On pourrait changer en mettant des id partout, et en modifiant les ancres sous la forme id="intertitre_1.2". Faut espérer que les gens ne font pas de liens en dur vers les anciennes ancres. S’ils n’utilisent que les modèles fournis avec le plugin, il suffit alors de changer ces modèles pour qu’ils pointent vers les nouvelles ancres.

      Qu’en penses-tu ?

    • D’après les spec, le name est censé disparaître... Donc si on veut rester dans la course, faut passer aux id... Pour ceux qui ont des liens en dur ca pose un problème... Mais c’était un peu risqué quand même de mettre ces liens en dur, sachant qu’il suffit de rajouter un titre pour que les ancres changent... Sinon faut faire 2 versions ? Enfin c’est peu lourd...

    • 2 versions... Pas envisageable... À la rigueur une option pour laisser les name... Mais bon...

      Problème : je n’ai absolument pas le temps de m’en occuper à court terme (quelques mois) !!! Le peux-tu ?

    • OK, je vais voir ca... pas de suite, mais bon,... heu bientôt ;-)

      Si personne ne dit rien dans ce forum, on remplace simplement les name en id...

    • vendu !

      Le premier à commiter à gagné... :-)

    • Bon ben hop c’est fait. Ca fonctionne chez moi

    • Je suis battu à plattes coutures !!

      Je testerai ça le plus vite possible (dans une semaine ou deux... :-/)

      (à l’occasion, j’ajouterai peut-être une autre modif pour que l’ancre soit non plus dans un <a id="XXX"></a> qui n’est pas très propre, mais directement dans le <hx id="XXX">)

    Répondre à ce message

  • 2

    Bonjour

    Ce plugin n’est pas noté compatible spip 2.1 sur ce site alors qu’il l’est sur http://plugins.spip.net/. Qu’en est-il ?

    • Le plugin fonctionne très bien avec Spip 2.1... J’ai d’ailleurs rajouté le mot-clé idoine pour qu’ici aussi l’information sont donnée.

    • Je ne sais vraiment, je ne connais pas ce domaine (le multi-langues), désolé !

    Répondre à ce message

  • 2

    Bonjour,
    y a-t-il une methode de traduction automatique des ancres genre < multi > ?
    merci d’avance !

    • heu... je connais mal les balises multi il faudrait essayer... :-/

    • Non justement elles ne marchent pas.... connaissez-vous une autre solution ?

    Répondre à ce message

  • 1
    Baptiste

    Remplacer la ligne 80 de intertitres_tdm_fonctions.php par :

    1.  preg_match ("/<h(\d) class=\"spip\"><a name='$ancre'><\/a>.*?<\/h\\1>(.*?)(<h\\1 class=\"spip\">|$)/s",$texte,$matches);

    permet de corriger la fonction « extrait_partie » pour qu’elle fonctionne si on demande la dernière partie du texte (sinon, il ne la renvoie pas car il attend un titre pour la terminer).

    • Bonjour,

      Merci beaucoup pour l’info. Tu peux modifier le plugin sur la zone si tu y as accès (sinon, il suffit de lire http://zone.spip.org/trac/spip-zone/ « Comment participer »).

      Sinon je le ferais dès que j’aurai eu du temps pour tester !

    Répondre à ce message

  • 2
    StephBretagne

    Bonjour et merci pour ce plugin qui est vraiment fabuleux !!!

    J’ai un petit souci qui me semble incompréhensible cependant : les intertitres hiérarchisés n’ont pas la même apparence selon que l’on veut avoir des numéros ou pas. Etrange non ?

    Je vous laisse une image pour que ce soit plus parlant.

    Je suis sous SPIP 2.0.10 [14698] | Sarka-SPIP 3.0.3 [36479] et j’ai pas mal de plugins installés (mais pas le CS) dont Enluminures typo et Barre Typo V2.

    Quelqu’un saurait pourquoi il y a cette différence entre les intertitres numérotés ou non ? Et serait-il possible d’unifier ces intertitres ?

    Merci d’avance pour vos réponses et bonne soirée !

    • Ce sont les CSS qui déterminent le style des intertitres (h2 à h7).

      Il est possible que les surcharges des enluminures supportent mal la cohabitation avec celles du plugin des intertitres hiérarchisés. As-tu essayé dans l’un ou l’autre pour voir ?

      As-tu un lien vers le site en question ?

    • StephBretagne

      Hello Beurt,

      Je te remercie pour ta réponse. Je ne sais pas si tu as vu mais je t’ai répondu via le formulaire de contact.

      Bonne soirée !

    Répondre à ce message

  • 6

    aussitôt la compatibilité SPIP 2 du plugin intertitres hiérarchisés annoncé ;
    j’ai tenté et testé un hack vite fait, largement/honteusement inspiré/pompé des enluminures typographiques : ça fonctionne chez moi :) je le livre donc à un plus large test et critiques

    • bonjour.

      j’ai entre temps travaillé sur une une meilleure intégration à la barre typographique afin d’avoir quelque chose de plus spécifique/adapté aux Intertitres Hiérarchisés (et il y a aussi les renvois et les extraits...)
      voici donc la nouvelle monture pour tests et critiques (pour le problème des ancres personnalisées, j’y travaille encore et au final, je crois que je vais scinder les deux cas car mes compétences en javascript sont à leur limite).

    • Salut !

      1- le bug apparu dans la v0.5 (avec l’espace privé) est corrigé (par un retour du fichier options) ->0.6

      2- j’aime beaucoup tes propositions pour les noms des modèles, je pense qu’on peut les rajouter avec des raccourcis vers les modèles « historiques » (pour compatibilité ascendante) :

      Ex. pour la table des matières, il suffit de rajouter dans modeles le fichier article_table.html :

      [
       
      (#REM) Raccourci vers le modèle de tables matières
       
       
      ]#MODELE{table_des_matieres,id=#ENV{id_article}}

      ou dans article_tdm pour éviter des ambigüités avec d’autres plugins qui manipuleraient des tables (MysQL, ou des tableaux)...

      3- je vais regarder en détail ce que tu as fait pour la BTv2. De prime abord je me demande si c’est compatible avec les enluminures ? Les deux peuvent coexister ?

      4- La BT va disparaitre avec Spip 2.1 remplacée sans doute par le porte plume : il faudra réfléchir à ça aussi.

      5- je t’invite à participer officiellement au développement de ce plugin : tu peux directement travailler sur la Zone !!! (D’ailleurs, tout le monde est invité !!). C’est plus simple a gérer que les zip, les différences entre les versions sont plus faciles à analyser et on sait plus facilement qui fait quoi. Donc gogogo !

      Et encore merci pour les efforts que tu fais pour ce plugin !

    • je vais regarder en détail ce que tu as fait pour la BTv2. De prime abord je me demande si c’est compatible avec les enluminures ? Les deux peuvent coexister ?

      j’ai testé la première monture avec les ET sans soucis (mon test ceci dit est sommaire car je n’utilise par ET : j’ai juste installé les deux et créé un article de test mélangeant des fonctionnalités des deux et vérifiant que la barre ne beugue pas..) donc, il semble que les deux peuvent coexister.
      et bien sur, les intertitres continuent de fonctionner quand BTv2 n’est pas installé (il n’est pas en requis...), et BTv2 fait apparaitre/disparaitre la portion relative aux Intertitres quand le plugin est activé/désactivé ^^

      La BT va disparaitre avec Spip 2.1 remplacée sans doute par le porte plume : il faudra réfléchir à ça aussi.

      j’ai installé et utilise (plus mes rédacteurs car je suis un peu vieille école) la BTv2 et c’est la raison pour laquelle je travaille à son intégration des Intertitres et non celle de FCKeditor par exemple :) je passerai à l’intégration du PP dès que je commencerai à l’utiliser...
      ceci dit, je viens de jeter un œil et je dois avouer qu’il me semble plus facile à programmer et à étendre (parce-que la barre actuelle n’est pas extensible, m’obligeant à modifier le core chaque fois pour un de mes sites et c’est cela aussi qu’essaye d’adresser la BTv2 avec son système de pipeline ; mais écrire des fonctions mélangeants php et js est un poil plus ardu que de déclarer des tableaux associatifs php je trouve) donc j’attends vivement la sortie officielle de PP :)

    • La BTv3 intègre désormais par défaut le fonctionnement avec les raccourcis typo {{{* }}}.

      Par contre, les # ne sont pas intégrés car — de mon point de vue — c’est à la CSS de s’occuper de ça...

    • Oups, je voulais bien sûr parler des ETv3 (Enluminures typographiques V3).

    • La BTv3 intègre désormais par défaut le fonctionnement avec les raccourcis typo *

      Bonne nouvelle cette convergence !
      Est-ce que les ET déposent aussi des ancres (ou des id) dans les titres ?

      Par contre, les # ne sont pas intégrés car — de mon point de vue — c’est à la CSS de s’occuper de ça...

      Dommage, il y a quand même une différence sémantique entre <ol> et <ul> non ?...

      De mon coté j’ai peu de temps, mais je vais essayer de revoir un peu le code du plugin d’ici quelques semaines. Si j’arrive à comprendre comment fonctionne les ETv3 (je suis vraiment nul en PHP) j’essaierai peut-être de terminer cette fusion que tu as entamée.

    Répondre à ce message

  • 3

    Bonjour,
    je suis personnellement un utilisateur d’intertitres hiérarchisés. Cependant, dans la mesure où cela n’est pas dans le core, une fois qu’on utilise un tel outil, difficile de revenir en arrière. Tout d’abord ce plugin assure la compatibilité avec les raccourcis {2{ }2} d’enluminures typo V2. C’est un point important. Cependant, fournit-il les fonctionnalités suivantes (réservées au webmaster du site) :
    -  Convertir en masse les codes {{{** }}} et {{{## }}} en {2{ }2} au cas où l’on décide de désinstaller ce plugin pour le remplacer par Enluminures Typo ?
    -  Convertir en masse les codes {{{** }}} et {{{## }}} en {{{ }}} au cas où l’on souhaite supprimer définitivement le plugin du site (retour en arrière irréversible) ?

    Cette critique n’est pas propre à ce plugin mais à tout plugin ajoutant de nouveaux raccourcis typographiques. Il faut permettre à l’utilisateur de pouvoir désinstaller définitivement le plugin.

    Encore bravo pour ce travail et bien cordialement

    • Bonjour !

      Je suis très heureux que tu sois un utilisateur convaincu des intertitres hiérarchisés !

      Il n’existe pas actuellement de système de désinstallation, et je n’ai malheureusement pas le temps de m’en occuper. Par contre, comme je le disais à Stéphane plus tôt, le développement de ce plugin est un développement ouvert (auquel chacun peut participer) par le SVN de Spip zone : donc libre à toi d’y travailler si tu le peux !

      Toutefois, on peut très bien faire cohabiter ce plugin avec les enluminures typo (comme tu le disais) et donc continuer à utiliser les {2{ }2} sans souci (il n’est pas nécessaire de passer aux {{{** }}} lorsque l’on installe le plugin Intertitres hiérarchisés et table des matières !).

      Par contre, il est sûr que l’utilisation de plugins qui rajoutent des raccourcis typographiques est sans retour (comme le mentionne très bien la contrib’ sur les enluminures typo).

      Désolé de ne pas pouvoir t’apporter plus d’éléments ! Ce que je peux ajouter est qu’une telle désinstallation demande de vérifier toutes les entrées de la base de données : de les passer dans une expression régulière qui va rétablir les raccourcis originaux. Puis remettre l’article modifié dans la base. Cela me paraît un énorme calcul, surtout pour les grosses bases de données (la base de données du site pour lequel ce plugin a été conçu contient plus de 3000 articles... Je connais au moins un site Spip qui l’utilise aussi avec plus 50000 (oui, cinquante mille) articles !!!).

    • bonjour Joseph.
      puisqu’aucun de ces deux plugins n’est installé sur spip-contrib, on peut comparer le résultat de leur désactivation ici :)

      avec Intertitres Hiérachisés

      {{{** Les trucs qui coupent}}}
      snip...
      {{{*** Ciseaux}}}
      de toutes les sortes... 
      {{{**** À bois}}}
      c'est dangereux ça !

      produit ce qui suit..

      Les trucs qui coupent

      snip...

      Ciseaux

      de toutes les sortes...

      À bois

      c’est dangereux ça !

      avec Enluminures Typographiques

      {2{ Les trucs qui coupent}}
      snip...
      {3{ Ciseaux}}
      de toutes les sortes... 
      {4{ À bois}}
      c'est dangereux ça !

      produit ce qui suit..

      2 Les trucs qui coupent
      snip...
      3 Ciseaux
      de toutes les sortes...
      4 À bois
      c’est dangereux ça !

      conclusion

      certe on a introduit de nouveaux raccourcis, mais ceux des intertitres hiérachisés restent compatibles avec le fonctionnement normal de SPIP et quand le plugin est désinstallé, les titres demeurent des titres (ils ne perdent que leur hiérarchisation sémantique (Hx) et visuelle (via les CSS), mais on devine dans les titres normaux SPIP les niveaux d’importance des titres qui sont écrits comme dans les documents purement textuels (ils sont souvent doublés de tirets de soulignement pour ne pas être confondu avec de simples listes) :)

      en tout cas, pour ma part, c’est bien moins gênant si on décide de revenir en arrière (encore que je me demande bien pourquoi).

    • bon, j’ai validé par inadvertance avant de terminer ma conclusion :( je termine donc et complète mon long message :)

      pour ce qui est donc du fait de :

      Convertir en masse les codes {{{** }}} et {{{## }}} en {{{ }}} au cas où l’on souhaite supprimer définitivement le plugin du site (retour en arrière irréversible) ?

      le retour en arrière est irréversible quand on utilise des raccourcis non standards de SPIP (sauf si on peut retoucher les articles à la main...) mais ce n’est pas si dommageable avec ce plugin... et comme le souligne Bert, ce genre d’opération est très lourde (et pas forcément efficace).

      concernant le fait de :

      Convertir en masse les codes {{{** }}} et {{{## }}} en {2{ }2} au cas où l’on décide de désinstaller ce plugin pour le remplacer par Enluminures Typo ?

      ce type de conversion est du même acabit que que le précédant (transformer les {{{** en {{{ : trop lourd (et risqué). mais la compatibilité assurée par ce plugin —comme tu l’as notée— permet de ne pas avoir à faire de conversion quand on a été utilisateur des Enluminures Typo. mieux, si tu as une préférence pour celle-là, les deux plugins peuvent cohabiter sans problème (et tu devrais pouvoir utiliser la table des matières sans la syntaxe —quand même meilleure— ainsi que certaines autres fonctionnalités)

      plus de compatibilité avec la core et moins de casse...

      je voudrais poursuivre sur le choix des raccourcis fournis et leur résultat lorsque l’on désactive ou désinstalle le plugin.
      ainsi, les * ou # rajoutés aux {{{ ne sont pas si pénalisants (de mon point de vue). j’aurais de la même façon voulu que les ancres personnalisés utilisés avec les intertitres soient de vrais ancres spipiennes (donc encadrés de [<code> et <code><-]) et non ce qui fait penser à un raccourci (donc encadrés de <<code> et <code>>) : cela aurait aussi l’avantage de ne pas casser les liens existants et même de récupérer ceux qui existent avant l’activation du plugin...

      dans le même ordre d’idée (casser le moins quand on désinstalle/désactive le plugin car en n’apportant que la cerise sur le gâteau par simple extension de la syntaxe existante), j’ai pour ma part renommé les modèles de façon à suggérer qu’il s’agit de l’extension de du modèle de base article (et garder donc les liens —mais sans les bonus et la présentation— lorsqu’on désactive) :
      -  table_des_matieres en article_table (avec la prise en compte des niveau et des numéreaux, il s’agit d’une véritable table des matières et non d’un sommaire)
      -  renvoi en article_renvoi
      -  extrait en article_extrait (ce renommage est moins pertiant)
      -  extrait_partie en article_partie (ce renommage est moins pertiant)

      voilà mes réfléxions actuelles sur ce plugin :/

    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