Intertitres

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.

updated on 17 April 2020

Discussion

Une discussion

  • 2

    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.

      Une évolution serait de pouvoir spécifier la classe depuis la config si on utilise un framework (bootstrap ou autre).

      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…

    Reply to this message

Ajouter un commentaire

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom