<?php
function typoenluminee_pre_typo($texte) { static $local_barre_typo_pas_de_fausses_puces = null; static $chercher_raccourcis; static $remplacer_raccourcis; global $debut_italique, $fin_italique; if (!isset($GLOBALS['barre_typo_pas_de_fork_typo']) OR $GLOBALS['barre_typo_pas_de_fork_typo'] === true) return $texte; if ($local_barre_typo_pas_de_fausses_puces===NULL){ // remplace les fausses listes a puce par de vraies // (recherche en debut de lignes - suivi d'un ou plusieurs caracteres blancs, en mode multiligne) // Mettre $GLOBALS['barre_typo_preserve_puces'] = true; dans mes_options.php pour ne pas avoir ce comportement if (!function_exists('lire_config')) { $local_barre_typo_pas_de_fausses_puces = $GLOBALS['barre_typo_pas_de_fausses_puces']; } else { $local_barre_typo_pas_de_fausses_puces = (lire_config('bte/puces','Non') == 'Oui')?true:false; } tester_variable('debut_italique', "<i$class_spip>"); tester_variable('fin_italique', '</i>'); $chercher_raccourcis = array( /* 9 */ "/(?<![{\d])[{](?![{\d])/S", // Expressions complexes car on n'a pas encore traite les titres ici /* 10 */ "/(?<![}\d])[}](?![}\d])/S", // puisque italique utilisent les memes caracteres en nombre inferieur /* 13 */ "/<-->/S", /* 14 */ "/-->/S", /* 15 */ "/<--/S", /* 16 */ "/<==>/S", /* 17 */ "/==>/S", /* 18 */ "/<==/S", /* 19 */ "/\(c\)/Si", /* 20 */ "/\(r\)/Si", /* 21 */ "/\(tm\)/Si", /* 22 */ "/\.\.\./S", ); $remplacer_raccourcis = array( /* 9 */ $debut_italique, /* 10 */ $fin_italique, /* 13 */ "↔", /* 14 */ "→", /* 15 */ "←", /* 16 */ "⇔", /* 17 */ "⇒", /* 18 */ "⇐", /* 19 */ "©", /* 20 */ "®", /* 21 */ "™", /* 22 */ "…", ); } if ($local_barre_typo_pas_de_fausses_puces === true) { $texte = preg_replace('/^-\s+/m','-* ',$texte); } $texte = preg_replace($chercher_raccourcis, $remplacer_raccourcis, $texte); /* Cas particulier pour le gras Il ne faut pas traiter la mise en gras ici si le texte contient un tableau */ if (!preg_match(',.(\|([[:space:]]*{{[^}]+}}[[:space:]]*|<))+.,sS', $texte)) { $chercher_raccourcisg = array( /* 7 */ "/(?<![{])[{][{](?![{])/S", // Expressions complexes car on n'a pas encore traite les titres ici /* 8 */ "/(?<![}])[}][}](?![}])/S" // En gros, verification qu'on n'est pas a l'interieur d'un titre ); $remplacer_raccourcisg = array( /* 7 */ "<strong class=\"spip\">", /* 8 */ "</strong>" ); $texte = preg_replace($chercher_raccourcisg, $remplacer_raccourcisg, $texte); } return $texte; }