Table of contents
Intertitres pour le porte plume
Nativement la syntaxe SPIP ne propose qu’un seul niveau de titre. Le niveau de départ h3.spip est configurable depuis le fichier d’options xxx_options.php
, en utilisant les variables de personnalisations :
$GLOBALS['debut_intertitre'] = "\n<h3 class=\"spip\">\n";
$GLOBALS['fin_intertitre'] = "</h3>\n";
Ce plugin ajoute au porte plume de spip la gestion de niveaux de titres supplémentaires, en prenant en compte le niveau de base configuré dans SPIP ou mes_options.php
.
Le plugin reprend, pour des raison de compatibilité et de migration, les syntaxes proposées par Enluminures typographiques V3 et Intertitres hiérarchisés et table des matières, soit {{{***
pour les titres simples et {{{###
pour les titres de type référence (ex:1.1, 1.1.2).
Les icônes affichées dans le porte plume (barre typographique), reflète le niveau sémantique au sens HTLM pour sensibiliser le rédacteur à son plan de page, et s’adapte en fonction de la globale spip $debut_intertitre.
Différences avec les plugins Enluminures typographiques V3 et Intertitres hiérarchisés et table des matières
- Ce plugin utilise textwheel , ceci permettant entre autre :
- de pouvoir surcharger les wheels déclarées pour un besoin spécifique,
- tester et maintenir plus facilement les expressions/ étudiées/raccourcis traités.
- utiliser les fonctionnalités de SPIP 3.
- il ne gère que les titres et ne crée pas de sommaire.
- une syntaxe additionnelle expérimentale permet d’ajouter des attributs aux titres (classes CSS, id spécifique, data-xx). Cette syntaxe est reprise de celle proposée par Markdown Extra.
Plugins compatibles
Etant donné que le plugin ne crée pas de sommaire, il est totalement compatible avec le plugin Sommaire automatique qui produit un sommaire de l’article.
Syntaxe & raccourcis
Il n’est plus possible (depuis la version 1.2.0) de mélanger dans un même article la syntaxe des titres et des références: ça n’a d’ailleurs aucun sens. C’est la syntaxe du premier titre rencontré qui déterminera l’interprétation de la suite des titres et intertitres. Par exemple, il suffit de choisir {{{# Référence }}}
comme premier titre pour que tous les autres titres et intertitres soient interprétés comme des références.
Raccourci | Description |
---|---|
{{{* … }}} |
équivalent au raccourcis spip intertitre {{{…}}} . h2 ou h3 suivant spip_debut_intertitre |
{{{** Titre}}} |
h3 ou h4 |
{{{*** Titre}}} |
h4 ou h5 |
{{{**** Titre}}} |
h5 ou h6 |
{{{***** Titre}}} |
h6 ou div.h7 |
{{{# Référence }}} |
|
{{{## Référence }}} |
|
{{{### Référence }}} |
|
{{{#### Référence }}} |
|
Attributs | par défaut les classes hx et rx sont ajoutées automatiquement |
{{{ Titre }}}{.test-class1 .test--extender} |
Ajouter des attributs css supplémentaires aux titres |
{{{ Titre }}}{#id_du_titre} |
Insérer un identifiant unique |
{{{ Titre }}}{attribut="valeur attribut" data-appear="left" itemprop="name"} |
Insérer des propriétés/attributs libres |
A savoir
Si les icônes du porte plume n’apparaissent pas après l’activation du plugin, supprimez les dossiers /local/cache-css et js.
Le plugin étant en développement, si vous avez installé une version précédente, il peut être nécessaire de supprimer le dossier /tmp/cache/wheels
, pour que les traitements typo soient pris en compte.
Participation & todo
Le plugin est disponible sur le dépôt Gitea. Tout retour est apprécié : suggestions, tests, bugs, idées d’amélioration, pull request.
Bugs et retours sur le forum de l’article ou en utilisant les tickets associés au dépôt sur Gitea : https://git.spip.net/spip-contrib-extensions/porte_plume_intertitres/issues
A partir de la version 1.2.0, la refonte du code permet de est facilement envisager de proposer des modèles de numérotation pour les titres de type référence via une constante ou un variable de configuration.
Discussions par date d’activité
Une discussion
Merci pour ton plugin. Bien pratique.
Une remarque : pour chaque intertitres (h2, h3, etc.) tu remplaces la class “spip” par le nom du tag.
Ainsi
<h3 class='spip'>
devient<h3 class='h3'>
.Du coup cela casse/modifie l’affichage puisque la CSS
h3.spip{…}
n’est plus prise en compte.Il y a t-il une raison à ce choix ?
Cheers
Hello
Merci pour le retour.
De mémoire, la raison est que à l’époque c’était le standard spip ;-)
ça peut se surcharger depuis mes options en utilisant les globales
https://github.com/mistergraphx/porte_plume_intertitres/blob/master/porte_plume_intertitres_options.php
Une évolution serait de pouvoir spécifier la classe depuis la config si on utilise un framework (bootstrap ou autre).
Quel serait ton besoin ou idée sur le sujet ?
Yop,
La surcharge via
/porte_plume_intertitres_options.php
ne marche pas.En cause qqs instructions dans
/porte_plume_intertitres/wheels/porte_plume_intertitres.php
Du coup, juste pour tester, j’ai forké ton plugin + et modifié ce fichier.
Voir la modif.
Oui ! Du coup là config pourrait proposer :
- la valeur du tag (pour pas chambouler les installs existantes )
- ’spip’ (parce que quand même, cela remet le plugin compatible avec la dist)
- champ input où l’utilisateur pourrait saisir ce qu’il veut.
Je veux bien te donner un coup de main si tu veux ?
Faudrait juste virer les notices PHP existantes en l’état. Sur ce point, je préfère te laisser la main…
Voui le “stantard spip” c’est pas le nom de la balise en classe, c’est bien plutôt “spip” justement, pour être raccord avec la dist et ce que produit la syntaxe légère de SPIP de base.
Il me semble que ça devrait donc produire hX.spip à chaque fois par défaut.
Est ce que cette modification peut avoir des conséquences su l’existant ou pas ?
Sinon, c’est une ligne de code à changer, je peux commiter quand on souhaite.
Si ça casse de l’existant c’est qu’il était conçu bizarrement (du genre des gens qui ne stylent QUE les classes CSS et jamais les vraies balises HTML h2, h3, etc, ce qui est hautement improbable).
Donc non en théorie pour 99,9% des sites ça casse rien (à commencer par la dist), puisque les thèmes styles les balises de titres avant tout.
Reply to this message
Ajouter un commentaire
Follow the comments:
|
