Changeset 113263 in spip-zone


Ignore:
Timestamp:
Jan 5, 2019, 3:51:05 PM (12 days ago)
Author:
nicod@…
Message:

Ne traiter avec precode que le <code> sur plusieurs lignes, pas le <code> inline.

Location:
_plugins_/coloration_code/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/coloration_code/trunk/coloration_code_fonctions.php

    r112568 r113263  
    124124        }
    125125
     126        $traitement_par_precode = false;
     127        if (defined('_DIR_PLUGIN_PRECODE') && _DIR_PLUGIN_PRECODE) {
     128                // si le plugin PRECODE est activé, on utilise son balisage moderne
     129                // header <pre> pour ne pas générer de <br>
     130                $geshi->set_header_type(GESHI_HEADER_PRE);
     131                $geshi->enable_line_numbers(GESHI_NO_LINE_NUMBERS);
     132                $code_corps = $geshi->parse_code();
     133                // si le code est sur plusieurs lignes, on passe le traitement à precode
     134                // sinon, c'est du code inline que precode ne gère pas
     135                if (is_int(strpos($code, "\n"))) {
     136                        $traitement_par_precode = true;
     137                        // supprimer le <pre> englobant, qui sera ajouté par PRECODE
     138                        $code_corps = trim(preg_replace('!^<pre[^>]*>|</pre>$!', '', $code_corps), "\n\r");
     139                        $rempl      = precode_balisage_code('class="' . $language . '"', $code_corps);
     140                }
     141        }
     142
    126143        if ($cadre == 'cadre' OR $englobant == "div") {
    127144                $geshi->set_header_type(GESHI_HEADER_DIV);
     
    131148                $geshi->enable_line_numbers(GESHI_NO_LINE_NUMBERS);
    132149        }
    133 
    134         //
    135         // And echo the result!
    136         //
    137         if (defined('_DIR_PLUGIN_PRECODE') && _DIR_PLUGIN_PRECODE) {
    138                 // si le plugin PRECODE est activé, on utilise son balisage moderne
    139                 // header <pre> pour ne pas générer de <br>
    140                 $geshi->set_header_type(GESHI_HEADER_PRE);
    141                 $geshi->enable_line_numbers(GESHI_NO_LINE_NUMBERS);
    142                 $code_corps = $geshi->parse_code();
    143                 // supprimer le <pre> englobant, qui sera ajouté par PRECODE
    144                 $code_corps = trim(preg_replace('!^<pre[^>]*>|</pre>$!', '', $code_corps), "\n\r");
    145                 $rempl      = precode_balisage_code('class="' . $language . '"', $code_corps);
    146         } else {
    147                 $rempl = $stylecss . '<' . $englobant . ' class="coloration_code ' . $cadre . '"><' . $balise_code . ' class="spip_' . $language . ' ' . $cadre . '"' . $datatext_content . '>' . $geshi->parse_code() . '</' . $balise_code . '>';
     150       
     151        if(!$traitement_par_precode) {
     152                $rempl = $stylecss . '<' . $englobant . ' class="coloration_code ' . $cadre . '"><' . $balise_code . ' class="spip_' . $language . ' ' . $cadre. '"' . $datatext_content . '>' . $geshi->parse_code() . '</' . $balise_code . '>';
    148153                if ($telecharge) {
    149154                        $rempl .= "<p class='download " . $cadre . "_download'><a href='$fichier'>" . _T('bouton_download') . "</a></p>";
  • _plugins_/coloration_code/trunk/paquet.xml

    r112568 r113263  
    22        prefix="coloration_code"
    33        categorie="edition"
    4         version="0.10.3"
     4        version="0.10.4"
    55        etat="stable"
    66        compatibilite="[3.2.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.