Comment retrouver les corrections typographiques de SPIP sous DRUPAL ?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

la question est dans le titre : comment retrouver les corrections typographiques propres au français "à la manière de SPIP" avec Drupal ?

En effet, SPIP, facilite la présentation "correcte" des articles écrits en français en remplaçant (au moment de l'affichage, précisons) les guillemets droits ["] par des guillemets à la française [«»], insère ou remplace les espaces simples par des espaces insécables devant les ponctuations fortes [;:?!]. Autrement dit, il utilise un langage de balisage léger (http://fr.wikipedia.org/wiki/Cat%C3%A9gorie:Langage_de_balisage_l%C3%A9ger) qui lui est propre afin de respecter les règles typographiques du français, ce qui rend les sites sous SPIP particulièrement homogènes, sans demander aux contributeurs des connaissances poussées en HTML.

Une esquisse de réponse peut être apporté par le module wordfilter (http://drupal.org/project/wordfilter trouvé grâce à ce billet:http://drupalfr.org/forum/general/discussion-generale/22716-correction-a...) mais ce n'est peut-être pas suffisant: "remplacer une séquence de caractères par une autre" rend par exemple le remplacement des guillemets difficiles à coder (comment en deviner le sens: ouverte ou fermée).

Quelqu'un a-t-il une meilleure solution ?

Version de Drupal : 

La solution inégalée a ce jour me semble être PHP Smartypants Typographer. Le module Typogrify peut faire l'interface entre Drupal et cette librairie:

  • Téléchargez Typogrify, qui contient une version de PHP Smartypants
  • Téléchargez PHP Smartypants Typographer, et utilisez le pour remplacer le smartypants.php fourni avec Typogrify
  • Reste un peu de configuration à faire dans smartypants.php pour utiliser les guillemets et activer la gestion des espaces

Merci. Effectivement Typogrify semble être une voie bien plus développée. Il m'a posé cependant plusieurs difficultés :

  • Il faut vider le cache de Drupal à chaque modification du fichier smartypants.php pour voir les résultats ;
  • Pour obtenir des résultats corrects en français, j'ai inséré les options suivantes dans smartypants.php :

# Default configuration:
define( 'SMARTYPANTS_ATTR', "qgbD:+;+m+h+H+f+t+u+" );

et modifié les deux lignes suivantes ainsi :

# Openning and closing smart double-quotes.
define( 'SMARTYPANTS_SMART_DOUBLEQUOTE_OPEN',  "«" );
define( 'SMARTYPANTS_SMART_DOUBLEQUOTE_CLOSE', "»" );

pour forcer l'insertions de guillemets françaises («») et non anglaises (“”).

Le résultat n'est pas entièrement satisfaisant. En écrivant dans mon article :

Test de "Tipogrify" - 'Smartypants'
Test de "Tipogrify" -- ''Smartypants''
Test de "Tipogrify" --- <<Smartypants>>
--- Il a dit : "'Moi, je n'irai pas' en riant".

J'obtiens :

Test de « Tipogrify » - ‘Smartypants’
Test de « Tipogrify » – ”Smartypants”
Test de « Tipogrify » — <>
— Il a dit : « ‘Moi, je n’irai pas’ en riant ».

J'aurais effectivement voulu pouvoir remplaçant les guillemets simples (‘’) par des guillemets anglaises (“”) comme guillemets de second niveau tout en ne remplaçant pas les apostrophes, ce que je ne peux pas faire en touchant ces deux lignes :

# Smart quote characters:
var $smart_doublequote_open  = SMARTYPANTS_SMART_DOUBLEQUOTE_OPEN;
var $smart_doublequote_close = SMARTYPANTS_SMART_DOUBLEQUOTE_CLOSE;
var $smart_singlequote_open  = '&#8216;';
var $smart_singlequote_close = '&#8217;'; # Also apostrophe.

Au passage vous remarquerez la disparition des mots entre doubles crochets (<<>>).

Ces défauts se retrouvent sur le site de drupalfr qui utilise également Tipogrify : voyez le même texte que précédemment sans balises "code" :

Test de "Tipogrify" - 'Smartypants'
Test de "Tipogrify" -- ''Smartypants''
Test de "Tipogrify" --- <>
--- Il a dit : "'Moi, je n'irai pas' en riant".

Une idée pour améliorer le fichier de configuration smartypants.php ?