,Uims","
",$html); $html = preg_replace(",,Uims","@@@hr@@@",$html); $html = preg_replace(",]*>,Uims","\n\n",$html); // commentaires html et conditionnels $html = preg_replace(",,Uims","\n",$html); $html = preg_replace(",,Uims","\n",$html); $html = preg_replace(",<(/?)(div|tr|caption)([^>]*>),Uims","<\\1p>",$html); $html = preg_replace(",(

\s*)+,ims","

",$html); $html = preg_replace(",
\s*

,ims","

",$html); $html = preg_replace(",

\s*
,ims","

",$html); $html = preg_replace(",(

\s*(@@@hr@@@)?\s*)+,ims","

\\2",$html); $html = preg_replace(",(

\s*

),ims","",$html); // succession @@@hr@@@
et
@@@hr@@@ $html = preg_replace(",@@@hr@@@\s*(<[^>]*>\s*)?]*>,ims","@@@hr@@@\n",$html); $html = preg_replace(",]*>\s*(<[^>]*>\s*)?@@@hr@@@,ims","\n@@@hr@@@",$html); $html = preg_replace(",]*spip_cadre[^>]*>(.*),Uims","\n\\1\n",$html); // vider le contenu de qqunes : $html = preg_replace(",]*>.*,Uims","\n",$html); // Liens : // Nettoyage des liens des notes de bas de page $html = preg_replace("@([0-9]+)@", "\\3", $html); // Supprimer tous les liens internes $html = preg_replace("/\]*>(.*?)<\/a>/ims","\\2", $html); // Remplace tous les liens preg_match_all("/\]*>(.*?)<\/a>/ims", $html,$matches,PREG_SET_ORDER); $prelinks = $postlinks = array(); if (!function_exists('url_absolue')) include_spip('inc/filtres'); foreach ($matches as $k => $match){ $link = "@@@link$k@@@"; $url = str_replace("&","&",$match[1]); if ($match[2]==$match[1] OR $match[2]==$url){ // si le texte est l'url : $prelinks[$match[0]] = "$link"; } else { // texte + url $prelinks[$match[0]] = $match[2] . " ($link)"; } // passer l'url en absolu dans le texte sinon elle n'est pas clicable ni utilisable $postlinks[$link] = url_absolue($url); } $html = str_replace(array_keys($prelinks), array_values($prelinks),$html); // les images par leur alt ? // au moins les puces $html = preg_replace(',]*alt="-"[^>]*>,Uims','-',$html); // les autres $html = preg_replace(',]*alt=[\'"]([^\'"]*)[\'"][^>]*>,Uims',"\\1",$html); // on vire celles sans alt $html = preg_replace(",]*>,Uims","\n",$html); // espaces $html = str_replace(" "," ",$html); $html = preg_replace(",

\s+,ims","

",$html); #return $html; include_spip("lib/markdownify/markdownify"); $parser = new Markdownify('inline',false,false); $texte = $parser->parseString($html); $texte = str_replace(array_keys($postlinks), array_values($postlinks),$texte); // trim et sauts de ligne en trop ou pas assez $texte = trim($texte); $texte = str_replace("
\n","\n",$texte); $texte = preg_replace(",(@@@hr@@@\s*)+\Z,ims","",$texte); $texte = preg_replace(",(@@@hr@@@\s*\n)+,ims","\n\n\n".str_pad("-",75,"-")."\n\n\n",$texte); $texte = preg_replace(",(\n#+\s),ims","\n\n\\1",$texte); $texte = preg_replace(",(\n\s*)(\n\s*)+(\n)+,ims","\n\n\n",$texte); //

et

restants $texte = str_replace(array("

","

"),array("",""),$texte); // entites restantes ? (dans du code...) include_spip('inc/charsets'); $texte = unicode2charset($texte); $texte = str_replace(array(''', '"'),array("'",'"'), $texte); // Faire des lignes de 75 caracteres maximum return trim(wordwrap($texte)); }