function core_traiter_raccourcis($letexte) { // Appeler les fonctions de pre_traitement $letexte = pipeline('pre_propre', $letexte); // Gerer les notes (ne passe pas dans le pipeline) $notes = charger_fonction('notes', 'inc'); list($letexte, $mes_notes) = $notes($letexte); // // Tableaux // // ne pas oublier les tableaux au debut ou a la fin du texte $letexte = preg_replace(",^\n?[|],S", "\n\n|", $letexte); $letexte = preg_replace(",\n\n+[|],S", "\n\n\n\n|", $letexte); $letexte = preg_replace(",[|](\n\n+|\n?\$),S", "|\n\n\n\n", $letexte); if (preg_match_all(',[^|](\\n[|].*[|]\\n)[^|],UmsS', $letexte, $regs, PREG_SET_ORDER)) { foreach ($regs as $t) { $letexte = str_replace($t[1], traiter_tableau($t[1]), $letexte); } } $letexte = "\n" . trim($letexte); // les listes if (strpos($letexte, "\n-*") !== false or strpos($letexte, "\n-#") !== false) { $letexte = traiter_listes($letexte); } // Proteger les caracteres actifs a l'interieur des tags html if (preg_match_all(_RACCOURCI_BALISE, $letexte, $regs, PREG_SET_ORDER)) { foreach ($regs as $reg) { $insert = strtr($reg[0], _RACCOURCI_PROTEGER, _RACCOURCI_PROTECTEUR); $letexte = str_replace($reg[0], $insert, $letexte); } } // Traitement des alineas list($a, $b) = definir_raccourcis_alineas(); $letexte = preg_replace($a, $b, $letexte); // Introduction des attributs class_spip* et autres raccourcis list($a, $b) = $GLOBALS['spip_raccourcis_typo']; $letexte = preg_replace($a, $b, $letexte); $letexte = preg_replace('@^\\n<br />@S', '', $letexte); // Retablir les caracteres proteges $letexte = strtr($letexte, _RACCOURCI_PROTECTEUR, _RACCOURCI_PROTEGER); // Fermer les paragraphes ; mais ne pas forcement en creer si un seul $letexte = paragrapher($letexte, $GLOBALS['toujours_paragrapher']); // Appeler les fonctions de post-traitement $letexte = pipeline('post_propre', $letexte); if ($mes_notes) { $notes($mes_notes); } return $letexte; }
/** * Callback de traitement de chaque tableau * * @param array $m * @return string */ function replace_tableaux($m) { return $m[1] . traiter_tableau($m[2]) . $m[3]; }