Changeset 60669 in spip-zone for _plugins_/coloration_code


Ignore:
Timestamp:
Apr 26, 2012, 7:51:14 AM (8 years ago)
Author:
marcimat@…
Message:

On colorie les échappements de squelettes de SPIP 3 comme \[

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/coloration_code/trunk/geshi/geshi/spip2.php

    r60666 r60669  
    167167        return $retour;
    168168}
     169
     170
     171/**
     172 * Echapper les echappements \[ \] ...
     173 *
     174**/
     175function spip2_geshi_regexp_echappements_echapper_callback($matches, $geshi) {
     176        $squelette = $matches[0];
     177
     178        // rendre inertes les echappements de #[](){}<>
     179        $inerte = '-INERTE';
     180        $squelette = preg_replace_callback(',\\\\([#[()\]{}<>]),',
     181                create_function('$a', "return '$inerte-'.ord(\$a[1]).'-';"), $squelette, -1, $esc);
     182
     183        return $squelette;
    169184}
     185
     186/**
     187 * Remettre les echappements \[ \] ...
     188 *
     189**/
     190function spip2_geshi_regexp_echappements_remettre_callback($matches, $geshi) {
     191        $contenu = $matches[0];
     192
     193        $inerte = '-INERTE';
     194        $key = $geshi->_hmr_key;
     195        $contenu = preg_replace_callback(",$inerte-(\d+)-,",
     196                #create_function('$a', 'return "\\\\" . chr($a[1]);'), $contenu);
     197                create_function('$a', 'return "<|!REG3XP'.$key.'!>\\\\" . chr($a[1]) . "|>";'), $contenu);
     198
     199        return $contenu;
     200}
     201
     202
     203} // /if
    170204
    171205
     
    183217                GESHI_COMMENTS => false,
    184218                ),
     219        'PARSER_CONTROL' => array(
     220                'ENABLE_FLAGS' => array(
     221                        'BRACKETS' => GESHI_NEVER, // le colorieur s'occupera des [](){} !
     222                        'NUMBERS'  => GESHI_NEVER, // le colorieur s'occupera des 123 (ou pas !)
     223                        #'KEYWORDS' => GESHI_NEVER, // il les faut pour les classes css :(
     224        )),
    185225        'STYLES' => array(
    186226                'KEYWORDS' => array(),
     
    220260
    221261                        99 => 'color: #FF001E; font-weight:bold;', // [ ( et ) ]
     262                       
     263                        // echappements
     264                        101 => '', // \[ \] \{ ...
     265                        102 => 'color:#FF2100; font-weight:bold;', // les \ dans les echappements
    222266                        )
    223267                ),
     
    227271
    228272        'REGEXPS' => array(
     273                // echapper les echappements
     274                100 => array(
     275                        GESHI_SEARCH => '^.*$',
     276                        SPIP_GESHI_REGEXP_FUNCTION => 'spip2_geshi_regexp_echappements_echapper_callback',
     277                        GESHI_MODIFIERS => 's',
     278                        ),
    229279/*
    230280                // Balise complexe avec [ ( et ) ] si on peut
     
    395445                        ),
    396446
     447                // remettre les echappements
     448                101 => array(
     449                        GESHI_SEARCH => '^.*$',
     450                        SPIP_GESHI_REGEXP_FUNCTION => 'spip2_geshi_regexp_echappements_remettre_callback',
     451                        GESHI_MODIFIERS => 's',
     452                        ),
     453                // permettre de colorer le \ des echappements differement
     454                102 => array(
     455                        GESHI_SEARCH => '(<\|!REG3XP101!>)(.)(.\|>)',
     456                        GESHI_REPLACE => '\\2',
     457                        GESHI_MODIFIERS => '',
     458                        GESHI_BEFORE => '\\1',
     459                        GESHI_AFTER => '\\3'
     460                        ),
     461               
    397462                ),
    398463
Note: See TracChangeset for help on using the changeset viewer.