,Uims","
",$html);
$html = preg_replace(",(table)>,Uims","@@@hr@@@",$html);
$html = preg_replace(",?(html|body|table|td|th|tbody|thead|center|article|section|span)[^>]*>,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*
\s*
),ims","",$html); // succession @@@hr@@@\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(",?(img)[^>]*>,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)); }