Changeset 82494 in spip-zone


Ignore:
Timestamp:
May 17, 2014, 10:24:41 AM (5 years ago)
Author:
cedric@…
Message:

bugfix sur les liens markdown : on les echappe en amont de la typo plutot que de les redresser apres + echapper les autoliens

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/markdown/branches/v0.12.0/markdown_options.php

    r82492 r82494  
    2323        // echapons le code dans le markdown
    2424        $texte = markdown_echappe_code($regs[3]);
     25        $texte = markdown_echappe_liens($texte);
    2526        return "<md".$regs[2].">$texte</md>";
    2627}
     
    4950}
    5051
     52function markdown_echappe_liens($texte){
     53        //[blabla](http://...)
     54        if (strpos($texte,"[")!==false){
     55                preg_match_all(",(\[[^]]*\])(\([^)]*\)),Uims",$texte,$matches,PREG_SET_ORDER);
     56                foreach($matches as $match){
     57                        #var_dump($match);
     58                        $p = strpos($texte,$match[0])+strlen($match[1]);
     59                        $texte = substr_replace($texte,code_echappement($match[2], 'mdlinks', true),$p,strlen($match[2]));
     60                }
     61        }
     62        //    [blabla]: http://....
     63        if (strpos($texte,"[")!==false){
     64                preg_match_all(",^(\s*\[[^]]*\]: )(.*)$,Uims",$texte,$matches,PREG_SET_ORDER);
     65                foreach($matches as $match){
     66                        #var_dump($match);
     67                        $p = strpos($texte,$match[0])+strlen($match[1]);
     68                        $texte = substr_replace($texte,code_echappement($match[2], 'mdlinks', true),$p,strlen($match[2]));
     69                }
     70        }
     71        // <http://...>
     72        $texte = echappe_html($texte,'md',true,',' . '<https?://[^<]*>'.',UimsS');
     73
     74        return $texte;
     75}
    5176
    5277/**
     
    111136function markdown_post_typo($texte){
    112137        if (strpos($texte,"<md>")!==false){
     138                $texte = echappe_retour($texte,"mdlinks");
    113139                $texte = echappe_retour($texte,"md");
    114140        }
     
    132158function markdown_raccourcis($texte){
    133159
    134         // redresser les raccourcis liens moisis par les autoliens
    135         $md = preg_replace_callback(",(\[[^]]*\])\((<a[^)]*</a>)\),Uims","markdown_link_repair",$texte);
    136         // redresser les raccourcis liens moisis par espaces insecables et/ou autoliens
    137         $md = preg_replace_callback(",^(\s*\[[^]]*\])(&nbsp;)?(:\s*?)(<a[^)]*</a>|[^<].*)$,Uims","markdown_link_repair2",$md);
     160        $md = $texte;
    138161
    139162        // marker les ul/ol explicites qu'on ne veut pas modifier
Note: See TracChangeset for help on using the changeset viewer.