Exemple de besoin
Supposons une page composée d’articles selon la structure suivante.
<h1>Titre de la page</h1>
<BOUCLE_articles(ARTICLES)>
<h2>#TITRE</h2>
#TEXTE
</BOUCLE_articles>
Ici, il faudrait que les intertitres au sein de #TEXTE
soient de niveau h3
et non pas de niveau h2
comme ils le sont par défaut. On pourrait bien sûr ajuster la valeur par défaut des titres, mais il se peut qu’on ait besoin du niveau h2
sur d’autres pages (par exemple sur la page de chaque article).
Résolution du problème
Il suffit d’utiliser le filtre |ajuster_intertitres
.
<h1>Titre de la page</h1>
<BOUCLE_articles(ARTICLES)>
<h2>#TITRE</h2>
[( #TEXTE|ajuster_intertitres)]
</BOUCLE_articles>
Par défaut, l’appel du filtre augmente de 1 tous les niveaux des intertitres : h2
devient h3
; h3
devient h4
, etc.), sans jamais dépasser h6
. Le plugin est donc nativement compatible avec tous les plugins de SPIP qui fournissent des intertitres supplémentaires.
Il est cependant possible d’avoir des réglages plus fins.
Choisir précisément le niveau
Le filtre peut prendre en premier argument le niveau de titre désiré. On propose deux syntaxe :
- si le premier argument est un entier, alors cela indique l’amplitude du décalage.
[(#TITRE|ajuster_intertitres{2})] [(#REM) h2 -> h4 ; h3 -> h5] [(#TITRE|ajuster_intertitres{-2})] [(#REM)h3 -> h1 ; h4 -> h2]
- si le premier argument est de la forme
hx
, alors cela indique le niveau de titre à partir duquel les intertitres doivent commencer.[(#TITRE|ajuster_intertitres{h4})] [(#REM) les titres iront du niveau h4 au niveau h6]
Éviter d’ajuster certains titres
Au sein d’une citation de code informatique (avec <code>
), les titres ne sont jamais ajustés.
Au sein d’une citation de texte (blockquote
), les titres ne sont par défaut pas ajustés.
Il est également possible d’indiquer qu’au sein de certaines balises, les titres ne sont pas ajustés. C’est utile par exemple pour les balise de sectionnement de la norme HTML5 [1]. On utilise pour ce faire le second argument du filtre, contenant la liste des balises dont il faut préserver le contenu, séparées par un pipe (|
).
Exemple :
[(#TEXTE|ajuster_intertitres{h5,blockquote|article|aside|nav|section})][(#REM) préserver les niveaux dans blockquote,article,aside,nav,section]
[(#TEXTE|ajuster_intertitres{h5,''})][(#REM) Ne préserver nul part les niveaux]
Discussions par date d’activité
2 discussions
Hello,
j’ai l’impression qu’en SPIP 4.1 (et plus généralement 4.x ?), il faut déclarer explicitement le niveau avec
ajuster_intertitres{1}
pour que ça fonctionne alors qu’avant (SPIP 3.2 ?), un simpleajuster_intertitres
suffisait comme indiqué dans la doc.Heu, il n’y a pas de raison que cela change. J’ai quand même par acquis de conscience vérifié le code ET fait un essai : chez moi ca marche (TM).
Effectivement, je ne reproduis plus (testé à l’instant sur une 4.2).
Répondre à ce message
Bien vu Maïeul !
Celui ci intègre direct ma liste de plugin dits-’SEO friendly’ :-)
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |