Ajouter une lettrine aux articles

Ce petit filtre, très simple à installer vous permettra de donner encore plus de classe à vos articles.

VOICI un filtre qui détecte la première lettre du premier paragraphe de l’article et qui la transforme en lettrine.

Vous trouverez ici un exemple en ligne du résultat :
http://www.illico.org/article.php3?...

Le filtre peut fonctionner en mode caractère ou en mode image.

En mode caractère il applique un tag
<font size="+3">...</font>, en mode image il remplace le caractère par une image, s’il trouve celle-ci dans le sous-répertoire lettrines/.

En mode image, le texte peut être ajusté au choix sur le haut ou sur le bas de la lettrine. Un jeu d’images est fourni pour faire les tests.

Vous êtes pressé d’essayer ? Pas de problème :

-  téléchargez l’archive jointe à cet article, et décompressez-la sous la racine de votre site. A ce stade, vous aurez déjà fait les trois quarts du travail.

-  Ajoutez la ligne

require("lettrines.php3");

dans votre fichier mes_fonctions.php3.

-  Dans vos squelettes, il vous reste à utiliser le filtre de la manière suivante

(#TEXTE|lettrine)

-  Videz le cache.

Si ça ne marche pas, et après avoir vraiment tout essayé, lisez donc le fichier README_lettrines :-)

Ah ! et si vous avez le cœur à l’ouvrage, il y a aussi un TODO_lettrines à lire...

A vous de jouer.

Discussion

18 discussions

  • Jean-Pierre

    Le téléchargement fonctionne chez moi.
    Je peux vous transmettre le paquetage par mail si vous le désirez.

    Répondre à ce message

  • Impossible de télécharger le paquetage ??? « Fichier inconnu ou inexistant » dit la bulle qui s’ouvre ! Comment faire ? Merci !

    Répondre à ce message

  • On est en 2008, la contrib est très vieille, mais elle fonction encore très bien. Il suffit de changer l’ extension de lettrines.php3 en lettrines.php. Mon fichier « mesfonctions.php » se trouvait dans le dossier « squelettes », j’y ai donc mis là aussi lettrines.php. j’ai mis à la racine du site le dossier lettrines, j’ai bien mis la balise texte comme indiqué. Bref merci !

    Répondre à ce message

  • 5

    -   —)4 juste un détail sur ton site exemple, je n’ai pas trouve le moyen de te contacter directement, aussi j’utilise ce commentaire, ici http://www.illico.org/article.php3?id_article=64, dans la barre du haut
    « accueil » est ecrit « acceil »
    @+
    nicolas

    • bonjour,
      le filtre fonctionne très bien chez moi, et je vous en remercie. toute fois, j’ai une petite question :

      -  > comment dois-je modifier le filtre pour que le mot contenant la lettrine soit en minuscule et non en majuscule ?

      J’ai tenté quelque petite bidouilles, mais rien ne marche.

      Je vous remercie par avance, et merci pour ce site très utile...
      a bientot.

    • j’ai réussi a parvenir a mes fin en enlevant les lignes 37 et 38 du fichier lettrine.php.
      -  Par contre je n’arrive pas a placé la lettrine en bas, pour que le haut de la lettrine sois aligné au haut des autres caractères.
      quelqu’un a une idée ?
      merci

    • j’ai réussi a aligné la lettrine en bas en faisant

      -  if ($position_lettrines == « bottom ») $position_lettrines = « left » ;
      if ($position_lettrines != « left ») $position_lettrines = « top » ;

      a la ligne 21, mais le problème, c’est que la ligne en dessous de la lettrine est décalé. En faite, j’aimerais que la ligne en dessous se décale vers la droite, pour pouvoir intègré la lettrine, et non pas vers le bas.

      si quelqu’un a une idée..
      merci

    • j’ai l’impression que cette contrib est morte, j’arrive un peu tard......

    • Quentin

      Pour info, l’utilisation de la lettrine conjuguée avec l’insertion d’images dans les articles pour la version 1.9.2b fait planter l’espace privé. (la page de l’article devient complètement blanche)...
      Quelqu’un a envie de s’y coller pour y remédier ? ;-)

    Répondre à ce message

  • 7
    Sébastien de Cornuaud

    Pour les maniaques de l’espace typographique, voici une petite contribution :

    1. Créer le style suivant en le personnalisant à votre guise

    .lettrine {
    	float: left;
    	font-size: 50px;
    	font-weight: bolder;
            height: 40px;
    	width: 40px;
    	line-height: 40px;
    }

    2. Dans le fichier lettrines.php3 modifier la ligne 48 comme suit :

    return ($debut . "<div class=\"lettrine\">" . $I . "</div>" . $fin);

    3.Supprimer le repertoire lettrines.

    Ainsi vous obtiendrez une vraie lettrine typographique (dans mon cas sur 3 lignes). De plus cela n’altere en rien le référencement ou la lecture par un logiciel de synthèse vocal.
    Pour modifier la taille de la lettre, n’oublier pas de changer le paramètre line-height qui permet de « caler » la lettrine dans l’alignement du heut du paragraphe, ainsi que les paramètres height / width qui controle la taille de la boîte et donc le blanc typo.

    En espérant que cette contrib satisfera les accros de la typo.

    • Sébastien

      Encore une chose : si votre article commence par une image, la lettrine ne s’affiche qu’au paragraphe suivant.

      Pour y remédier :
      Remplacer à la ligne 64 :

      ereg("^(.*<[Pp][^>]*> *)" . $expr_lettre, $lignes[$i], $liste))

      par

       ereg("^(.*<[^>]*>*> *)" . $expr_lettre, $lignes[$i], $liste))

      Au lieu d’exclure la balise

      ça ignore toutes les balises...

    • Sébastien

      J’y suis allé un peu vite. Voici la condition dans son intégralité :

      if (ereg("^( *)" . $expr_lettre,  $lignes[$i], $liste) ||
          ereg("^(.*" . quotemeta($GLOBALS["fin_intertitre"])." *)".$expr_lettre, $lignes[$i], $liste) ||
          ereg("^(.*<[Pp][^>]*> *)".$expr_lettre, $lignes[$i], $liste)||
          ereg("^(.*<[^>]*>*> *)" . $expr_lettre, $lignes[$i], $liste))

      Sans ça il y a un problème avec les balises de paragraphe

    • Julien Bidoret

      Bravo ! pour cette belle amélioration... et merci pour les « accros de la typo » !

    • Merci pour cette contribution.

      Plutôt que de définir le style lettrine en px je l’ai défini en em.
      Cela à l’avantage de créer une lettrine qui s’ajuste à la taille du texte et qui dans mon cas prend approximativement trois lignes.

      .lettrine {
             float: left;
             font-size: 4.3em;
             font-family: times;
             margin: 0em; 
             padding-top: 0.1em; 
             padding-right: 0.1em;
             line-height: 0.7em;
      }

      Ca fait bricolage mais le rendu pas mal.
      A voir sur www.cuverville.org (le sommaire et les pages intérieures ont des lettrines de tailles différentes).

      PS :
      Pour l’instant je n’arrive pas à faire fonctionner la modif. qui supprime tous les tags et permet d’afficher une lettrine s’il y a une image au début du texte. Je vais réessayer.

    • Philou1360

      Bonjour,

      Les lettrines ne fonctionnent pas avec la version 1.8.2d de SPIP dès qu’il y a une image dans l’article ! Quelqu’un aurait-il la solution ?

      Merci
      Philou1360

    • PS : Pour l’instant je n’arrive pas à faire fonctionner la modif. qui supprime tous les tags et permet d’afficher une lettrine s’il y a une image au début du texte. Je vais réessayer.

      En fait il faut reprendre la condition dans son intégralité depuis la ligne 59 du fichier lettrines.php3. Et là, même avec une image, la lettrine est générée.

      Cependant, le filtre |lettrine| annule |justifier|
      C’est dommage, quelqu’un a t il résolu ce problème ??

      Merci

      dany

    • salut à tous
      ben moi aussi j’aimerais bien trouver une soluce pour que la fonction justifier fonctionne avec la lettrine
      quelqu’un a t’il une idée ?

    Répondre à ce message

  • 2

    Bonjour,

    il y a un petit probleme, la lettrine fonctionne bien mais les majuscules des autres phrases du paragraphes contenant la lettrine ont disparu.

    exemple : cliquez ici

    Une idée ?

    Merci

    • Ok j’ai trouver le probleme :

      il faut remplacer ligne 38

      $fin = strtoupper($parties[1]) . $parties[2] ;

      par $fin = $parties[1] . $parties[2] ;

    • Ben j’ai fait la modif mais ça change rien...

    Répondre à ce message

  • 1
    Julien Bidoret

    Ouaip... Attention à ce que vous nommez lettrine. Ici, seul le mode image avec calage en haut est -presque- correct. Le reste est une hérésie typographique assez dégueulasse. Une lettrine est un caractère qui débute un paragraphe en s’incrustant dans les (2,3 ou douze)premières lignes du paragraphe, calée sur la deux trois ou douzième ligne de base. Et en aucun cas une lettre plus grande que les autres alignées sur la première ligne de base. Juste pour dire que c’est pas mal de pousser un peu l’édition électronique à respecter un peu les critères de lisibilité, de composition typo (etc.) mis au point par quelques centaines d’années d’édition papier. Ce filtre, bien foutu, doit donc être utilisé avec parcimonie et précision. Faire gaffe entre autres à la taille de la typo qui vient derrière, qui si elle est fonction des préférences utilisateur, ne sera jamais calée correctement...

    • C’est tout à fait exact et c’est triste de voir l’art typographique disparaître à petit feu... J’ajouterai tes explications par les 1/2 cadratins qu’il faut mettre également devant les lignes qui habillent la lettrine, sans oublier que le mot qui suit la lettrine doit être en capitales... Arfff que de souvenirs tout ça ;-)

    Répondre à ce message

  • 3

    Beaucoup plus simple et surtout accessible pour tous : utiliser es feuilles de styles !
    dans le css, mettre :

    P:first-letter {
        font-size: 200%;
        font-weight: bold;
    }

    puis encadrer ses paragraphes des balises <p></p>
    et voilà ! les lettrines sont en place !
    pas d’image à charger, on peut choisir sa police, on est accessible et conforme et sans toucher à spip...
    c’est t-y pas cool ? :o)

    Répondre à ce message

  • Delphiste47

    Bonjour,
    Juste un petit soucis, si je mets un titre en gras dans mon article, par exemple :
    1-Généralités :
    Bla bla ....
    ma lettrine ne fonctionne pas
    mais si je commence par Bla bla.... j’ai bien ma lettrine ??
    Quelqu’un à une idée ? merci

    Répondre à ce message

  • Petit probleme,

    la lettrine ne fonctionne pas si on a un tag image qui commence le texte, le pb est identique avec CSS, si ce script pouvait faire son identification premiere lettre apres un tag, ce serait bien !

    sinon first letter moi le l’applique a d’autres balises
    que le p et ca marche enfin sous IE !

    Florent

    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 :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

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