Compatibilité texte_typo

Attention au rendu lors des migrations.

Quand on utilise le filtre image_typo pour son site spip, attention au rendu.

Petit rappel sur image_typo

Le filtre image_typo est très pratique, il permet de créer une image à partir de texte. Historiquement, les navigateurs ne peuvent afficher les caractères typographiques que des fontes qui sont présentes sur l’ordinateur du visiteur du site, image_typo permet de contourner cette limitation.

La spécification CSS3 @font-face permettra de spécifier la source d’un fichier TTF [1], cependant à l’heure actuelle, très peu de navigateurs disposent de cette fonctionnalité.

Ainsi, en ajoutant ce code dans votre squelette

[(#VAL{"Bonjour"}|image_typo{police=dustissimo.ttf,taille=29,couleur=ff99cc})]

Vous produirez cette image

De même, en spécifiant par exemple
[(#TITRE|image_typo{police=garamond.ttf,taille=29,couleur=cccccc})] vous créerez automatiquement une image de la bonne couleur et de la bonne police tant soi peu que vous ayez placé le fichier garamont.ttf dans votre dossier /squelettes/polices

Comment ça se passe ?

SPIP envoie le #TITRE à la librairie GD (librairie graphique de PHP) et si celle-ci a été compilée avec ’—enable-gd-native-ttf’ (ce qui est presque toujours le cas), le script va générer une image au format PNG avec les bonnes instructions de texte, de couleur, de taille et de typographie.

Cette image va être insérée dans le code HTML généré par SPIP. Si vous n’avez pas tout compris, ce n’est pas grave.

Le problème de plateforme

Bien que cela ne présente pas de problème majeur, il est important de noter que les rendus diffèrent souvent selon la plate-forme sur-lesquels ils sont effectués.

  • Fig1. La version de travail
  • Fig2. La version en ligne
  • Fig3. Une superposition des deux versions pour mieux voir les différences.

Quand vous travaillez sur les squelettes de votre site, vous travaillez normalement sur votre ordinateur et vous accédez à votre site SPIP par une adresse locale [2] comme vous êtes sous Mac, Windows (et plus rarement Linux), le rendu des typographies est fait par votre système d’exploitation.

Quand vous publiez en ligne, les rendus des images générées par image_typo dépendent alors du système d’exploitation du serveur, c’est la plupart du temps basé sur FreeBSD ou Linux CentOs, du coups les images vont très certainement différer.

Par conséquent, alors que sur votre ordinateur le rendu est propre, les typographies sont joliement lissées, ça vous plaît...

Le rendu une fois envoyé sur le serveur peut être catastrophique

Solutions

Il n’y a pas vraiment de solution miracle, cependant je peux vous conseiller 3 astuces :

  • Agrandir : les problèmes de lissage ne posent véritablement problème que dans le cas où les textes sont écrits tout petit, en grossissant votre texte, les problèmes seront minimes.
  • Utiliser des images fixes : s’il s’agit de rubriques, les textes des rubriques vont-ils vraiment changer ? pouvez-vous envisager de les passer en images statiques (ou en logo de rubriques).
  • Attendre : peut être que la librairie GD sera améliorée ou que les navigateurs internet deviennent compatible avec CSS 3.

Notes

[1True Type Font, c’est un format de fichier assez « stantard » rassemblant les informations sur une fonte

[2il peut y avoir plein d’adresses locales comme http://localhost ou http://monprojet.site ou http://127.0.0.1

Discussion

3 discussions

  • 1

    Bonjour

    Le filtre image_typo ne conserve pas les saut de ligne. Est-ce qu’il y a une astuce ?

    Je souhaite générer une image avec le titre d’une rubrique à la verticale, est-ce possible ?

    Merci de votre aide

    Répondre à ce message

  • Joseph Tux

    Bonjour,

    merci pour cette fonctionnalité très intéressante.

    Si j’ai bien compris, le fait que je travaille sous Linux et que mon hébergeur soit lui aussi sous Linux, évite le problème ?

    Répondre à ce message

  • dans les solutions, je citerais le filtre image_reduire_par qui, pour certaines typos, nous fournit un crénelage parfois convenable en « floutant » légèrement les textes trop petits.

    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