PHP SmartyPants : Configuration

PHP SmartyPants Lib inclus deux parseurs: SmartyPants et SmartyPantsTypographer. Voici une liste des réglages qui peuvent s’appliquer à chaqun d’eux.


Configurer le parseur

Pour changer le comportement par défaut, vous pouvez passer comme deuxième argument à la fonction defaultTransform une chaîne de configuration:

use Michelf\SmartyPants;
$html = SmartyPants::defaultTransform($text, "1");

Vous pouvez aussi créer une instance du parseur directement avec la chaône de configuration voulue avant d’appeler sa méthode transform:

use Michelf\SmartyPants;
$parser = new SmartyPants("1");
$html = $parser->transform($text);

La chaîne de configuration peut prendre deux formes: elle peut spécifier un préréglage, ou elle peut fournir une liste d’option à activer. Les préréglages et les options de configuration disponibles sont décrits ci-bas.

Vous pouvez aussi changer les variables de configuration directement sur l’instance du parseur:

use Michelf\SmartyPants;
$parser = new SmartyPants;
$parser->do_dashes = 2;
$html = $parser->transform($text);

La configuration de SmartyPantsTypographer se fait de la même façon. Remplassez simplement SmartyPants par SmartyPantsTypographer.

Préréglages

SmartyPants vient avec trois préréglages que vous pouvez utiliser au lieu de spécifier chaque option séparément:

"0"
Supprimme toute transformation. (Ne fait rien.) La sortie est identique à l’entrée.
"1"
Effectue les transformations par défaut de SmartyPants: les guillemets (incluant les guillemets obliques), les points de suspension, deux traits d’union pour indiquer un tiret long (il n’y a pas de support pour les tirets courts).
"2"
Même chose que "1", excepté que le raccourci pour les tirets court devient -- deux traits-d’union et trois traits d’union --- servent pour les tirets long.
"3"
Même chose que "2", mais inverse le raccourci pour les tirets long -- et pour les tirets courts ---.
"-1"
Mode abrutissant. Inverse les transformations de SmartyPants, changeant les entités HTML produites par SmartyPants en leurs équivalents ASCII. Par exemple, “ devient un simple guillement double, — devient deux traits d’union, etc. C’est utile si pour supprimer la ponctuation typographique sur des pages spécifiques, tel que les fils RSS.

Configuration de SmartyPants

tags_to_skip = 'pre|code|kbd|script|style|math'

Liste des balises HTML dont le contenu ne sera pas affecté par SmartyPants.

(Note: Cette chaîne est injectée dans une expression régulière, donc des précautions doivent être prises pour ne pas placer des caractères spéciaux qui pourrait briser l’expression.)

do_nothing

Régler cette variable à 1 désactivera toutes les transformations de SmartyPants. Régler à 0 pour permettre aux autres transformations de s’exécuter.

do_quotes

Transforme les guillemets droits " en guillemets “courbes”. Fonctionne aussi avec les guillemets simples et les apostrophes.

Option Variable "droit" 'droit'
q do_quotes = 1 “courbe” ‘courbe’

Ceci est activé par défaut si l’on utilise un préréglage. Réglez à 0 pour désactiver.

do_backticks

Transforme les guillemets approximatifs ``comme ça'' en guillemets “courbes”. Régler à 2 pour traiter aussi les guillemets simples.

Option Variable ``double'' `simple'
b do_backticks = 1 “courbe”
B do_backticks = 2 “courbe” ‘courbe’

La première variante ci-haut est activée si l’on utilise un préréglage. Réglez à 0 pour désactiver.

do_dashes

Transforme les double traits d’union en tirets, et optionnellement les triple traits d’union.

Option Variable Double -- Triple ---
d do_dashes = 1 long —
D do_dashes = 2 court – long —
i do_dashes = 3 long — court –

La première variante ci-haut est activée si l’on utilise un préréglage. Réglez à 0 pour désactiver.

do_ellipses

Transforme trois points consécutifs en caractère de points de suspension.

Option Variable ...
e do_ellipses = 1

Ceci est activé par défaut si l’on utilise un préréglage. Réglez à 0 pour désactiver.

do_stupefy

Réglez à 1 pour convertir les caractère typographiques en caractère ASCII.

convert_quot

Converti " en entité HTML pour un guillement double droit ". Ceci est fait avant les autres transformations, et le résultat final sera un guillement droit seulement do_quotes n’est pas activé. Utilisez cette option si votre éditeur HTML émet " en tappant des guillemets.

Option Variable "
w convert_quot = 1 "
smart_doublequote_open = '“'
smart_doublequote_close = '”'
smart_singlequote_open = '‘'
smart_singlequote_close = '’' (aussi apostrophe)

Caractère de remplacement pour les guillemets droits, double et simple. La valeur par défaut produira des guillemets “doubles”, ‘simples’ et des apostrophes courbés. Remplacez ces caractères si vous voulez les convertir automatiquement à quelque chose d’approprié pour une autre langue.

backtick_doublequote_open = '“'
backtick_doublequote_close = '”'
backtick_singlequote_open = '‘'
backtick_singlequote_close = '’' (aussi apostrophe)

Caractère de remplacement pour les guillemets approximatifs activés par do_backticks ci-haut.

em_dash = '—'
en_dash = '–'

Caractère de remplacement pour les tirets longs et courts.

ellipsis = ‘…’

Caractère de remplacement pour les points de suspension.

Configuration de SmartyPants Typographer

do_comma_quotes

Transforme les guillemets approximatifs de style ,,allemand`` ou ''grecs,, en leur équivalent typographiques. Cette option gère seulement la partie basse ,, composés de deux virgules consécutives et devrait être utilisé en conjonction avec do_backticks pour que le guillement haut soit converti aussi.

Option Variable ,,
c do_comma_quotes = 1

Réglez à 0 pour désactiver.

do_guillemets

Transforme les guillemets approximatifs de style français (<< et >>) en leur équivalent typographique.

Option Variable << >>
g do_guillemets = 1 « »

Réglez à 0 pour désactiver.

do_geresh_gershayim

Transforme les apostrophes et guillemets droits au milieu d’un mot hébreu en geresh ou gershayim typographiquement correct. Ne s’applique que si un lettre en hébreu se trouve de chaque côté.

Option Variable צ'ארלס צה"ל
G do_geresh_gershayim = 1 צ׳ארלס צה״ל
do_space_colon

Transforme le caractère d’espacement précédant un deux-points en espace insécable. Peut aussi insérer ou retirer de force l’espacement.

Option Variable this: this :
: do_space_colon = 1 this: this_:
:+ do_space_colon = 2 this_: this_:
:- do_space_colon = -1 this: this:

La première variante ci-haut est activée si l’on utilise un préréglage. Réglez à 0 pour désactiver.

do_space_semicolon

Transforme le caractère d’espacement précédant un point virgule en espace insécable. Peut aussi insérer ou retirer de force l’espacement.

Option Variable this; this ;
: do_space_semicolon = 1 this; this_;
:+ do_space_semicolon = 2 this_; this_;
:- do_space_semicolon = -1 this; this;

La première variante ci-haut est activée si l’on utilise un préréglage. Réglez à 0 pour désactiver.

do_space_marks

Transforme le caractère d’espacement précédant un point d’exclamation ou un point d’interrogation en espace insécable. Peut aussi insérer ou retirer de force l’espacement.

Option Variable ¡this! ¡ this !
m do_space_semicolon = 1 ¡this! ¡_this_!
m+ do_space_semicolon = 2 ¡_this_! ¡_this_!
m- do_space_semicolon = -1 ¡this! ¡this!

La première variante ci-haut est activée si l’on utilise un préréglage. Réglez à 0 pour désactiver.

do_space_emdash

Transforme les caractères d’espacement autour d’un tiret long en espace sécable. Peut aussi insérer ou retirer de force l’espacement.

Option Variable a—b a — b
h do_space_emdash = 1 a—b a_—_b
h+ do_space_emdash = 2 a_—_b a_—_b
h- do_space_emdash = -1 a—b a—b

Réglez à 0 pour désactiver.

do_space_endash

Transforme les caractères d’espacement autour d’un tiret court en espace sécable. Peut aussi insérer ou retirer de force l’espacement.

Option Variable a–b a – b
H do_space_endash = 1 a–b a_–_b
H+ do_space_endash = 2 a_–_b a_–_b
H- do_space_endash = -1 a–b a–b

Réglez à 0 pour désactiver.

do_space_frenchquote

Transforme le caractère d’espacement sur l’intérieur des guillemets français en espace insécable. Peut aussi insérer ou retirer de force l’espacement.

Option Variable «allô» « allô »
f do_space_frenchquote = 1 «allô» «_allô_»
f+ do_space_frenchquote = 2 «_allô_» «_allô_»
f- do_space_frenchquote = -1 «allô» «allô»

Notez qu’avec la première variante du tableau ci-haut, l’espacement autour des guillemets »allemand« ou »finlandais» restent intouchés. Les deux autres variantes ne devrait normalement être utilisés qu’avec du texte en français.

La première variante ci-haut est activée si l’on utilise un préréglage. Réglez à 0 pour désactiver.

do_space_thousand

Transforme le caractère d’espacement utilisé comme séparateur de millier en espace insécable. Peut aussi insérer ou retirer de force l’espacement.

Option Variable 10 000 bugs 10000 bugs
t do_space_thousand = 1 10_000 bugs 10000 bugs
t+ do_space_thousand = 2 10_000 bugs 10_000 bugs

La première variante ci-haut est activée si l’on utilise un préréglage. Réglez à 0 pour désactiver.

do_space_unit

Transforme le caractère d’espacement utilisé comme séparateur entre un nombre et une abbréviation d’unité reconnue en espace insécable. Peut aussi insérer ou retirer de force l’espacement.

Option Variable 12 kg 12kg
u do_space_unit = 1 12_kg 12kg
u+ do_space_unit = 2 12_kg 12_kg
u- do_space_unit = -1 12kg 12kg

La première variante ci-haut est activée si l’on utilise un préréglage. Réglez à 0 pour désactiver.

doublequote_low = "&#8222;"

Caractère de remplacement pour les guillmets bas activés par do_comma_quotes ci-haut.

guillemet_leftpointing = "&#171;"
guillemet_rightpointing = "&#187;"

Caractère de remplacement pour les guillemets français approximatifs activés par do_guillemets ci-haut.

geresh = "&#1523;"
gershayim = "&#1524;"

Caractère de remplacement pour les geresh et gershayim en hébreu.

space_emdash = " "
space_endash = " "
space_colon = "&#160;"
space_semicolon = "&#160;"
space_marks = "&#160;"
space_frenchquote = "&#160;"
space_thousand = "&#160;"
space_unit = "&#160;"

Caractère d’espacement utilisé pour chaque règle d’espacement. La valeur par défaut correspond à un espace insécable, sauf autour des tirets où un espace sécable régulier est utilisé.

Utilisez d’autre caractères unicodes ou des balises HTML pour produire un résultat différent.

space = '(?: | |&nbsp;|&#0*160;|&#x0*[aA]0;)'

Expression régulière pour trouver un caractère d’espacement, sécable ou insécable.

Sortie UTF-8

La configuration par défaut de PHP SmartyPants émet des entités HTML. Vous pouvez les remplacer par des caractères dans les différentes variables de configuration par leur équivalent en caractère UTF-8. Ou plus simplement appeler la méthode suivante:

$parser->decodeEntitiesInConfiguration()

Cette méthode remplacera toutes les entités HTML dans les variables de configuration en utilisant html_entity_decode.

Configurer la version classique

Les options de configuration pour la version classique peuvent se changer avec la même chaîne de configuration que PHP SmartyPants Lib.

La fonction defaultTransform n’existe pas. À la place, une fonction globale SmartyPants est disponible pour effectuer la transformation à laquelle vous pouvez ajouter une chaîne de configuration.


  • © 2003–2024 Michel Fortin.