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.

updated on 6 October 2004

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.

    Reply to this message

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

    Reply to this 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 !

    Reply to this 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......

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

    Reply to this 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?

    Reply to this 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...

    Reply to this 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 ;-)

    Reply to this 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)

    Reply to this 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

    Reply to this 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

    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