SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 241 visiteurs en ce moment

Accueil > Rédaction > Assistants de rédaction > Coloration code > Coloration Code

Coloration Code

22 décembre 2008 – par ARNO*, mortimer – 25 commentaires

17 votes

Basé sur le moteur Geshi, ce plu­gin per­met de colo­ri­ser du code source pour dif­fé­rents lan­ga­ges (dont HTML, PHP, SPIP...).

Il suf­fit de met­tre le code entre <code class="lan­gage">...</code> ou avec un cadre <cadre class="lan­gage">...</cadre>.
Ce qui per­met d’obte­nir ce genre de pré­sen­ta­tion :
avec <cadre class='html4strict'>

  1. <title>Plugins SPIP</title>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3.  
  4. <script src="prive/javascript/jquery.js" type="text/javascript"></script>
  5. <script src="prive/javascript/jquery.form.js" type="text/javascript"></script>
  6. <script src="prive/javascript/ajaxCallback.js" type="text/javascript"></script>
  7. <!-- insert_head -->
  8. <link rel='stylesheet' href="prive/spip_style.css" type="text/css" />
  9. <link rel='stylesheet' href="http://plugins.spip.net/spip.php?page=css&amp;id_rubrique=1" type="text/css" />
  10. <link rel='stylesheet' href='http://plugins.spip.net/prive/spip_admin.css' type='text/css' />
  11. </head>

Télécharger

avec <code class='html4strict sans_telechargement'>

  1. <title>Plugins SPIP</title>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3.  
  4. <script src="prive/javascript/jquery.js" type="text/javascript"></script>
  5. <script src="prive/javascript/jquery.form.js" type="text/javascript"></script>
  6. <script src="prive/javascript/ajaxCallback.js" type="text/javascript"></script>
  7. <!-- insert_head -->
  8. <link rel='stylesheet' href="prive/spip_style.css" type="text/css" />
  9. <link rel='stylesheet' href="http://plugins.spip.net/spip.php?page=css&amp;id_rubrique=1" type="text/css" />
  10. <link rel='stylesheet' href='http://plugins.spip.net/prive/spip_admin.css' type='text/css' />
  11. </head>

Les lan­ga­ges susceptibles d’être colorisés sont ceux four­nis dans http://zone.spip.org/trac/spip-zone... dont la classe sup­ple­men­taire : « spip ». Attention : pour coloriser du HTML ou du XHTML la « classe » doit être : "html4s­trict".

Par défaut, si le code colorisé fait plus d’une ligne, il est mis en cache sous forme tex­tuelle et pro­posé au télé­char­ge­ment par un lien Télécharger placé sous le bloc colorisé .
Ce fonc­tion­ne­ment est contrôlé glo­ba­le­ment par une cons­tante (par défaut définie à « true ») : PLUGIN_COLORATION_CODE_TELECHARGE. Il peut être forcé loca­le­ment en rajou­tant la classe « sans_tele­char­ge­ment » dans un sens ou « char­ge­ment » dans l’autre ; par exemple : <code class="php sans_tele­char­ge­ment">.

Vous pou­vez aussi uti­li­ser le fil­tre |coloration_code_color dans un sque­lette avec : #TEXTE**|coloration_code_color{spip, code}
Le filtre colorise #TEXTE avec le lan­guage « spip » et en for­mat « code » ; par exem­ple avec un squelette nommé lecode.html, l’url d’appel depuis un arti­cle serait :

  1. <a href="#URL_SITE_SPIP/spip.php?page=lecode&id_article=#ENV{id_article}" title="voir le code de article" class="spip_in">Voir le code de l'article</a>

Coloration SPIP avec Coloration Code > 0.7.0

La version 0.7.0 de Coloration Code améliore grandement la coloration du code des squelettes SPIP. Cependant, elle nécessite, pour cette coloration là, une version de PCRE (ecrire/ ?exec=info pour la connaitre) au moins supérieure à 7.6. Pour sûr la version 8.12 de PCRE sur un PHP 5.3.5 fonctionne sans problème.

Cette version propose 2 types de coloration du code SPIP :

  • "spip" fait appel à une coloration utilisant des expressions régulières complexes et colorie bien mieux que les versions précédentes du plugin
  • "spip3" fait appel au phraseur et décompilateur de SPIP pour générer le code à colorier. De ce fait, la coloration est très précise mais certaines informations sont perdues car le code source est reconstruit : des espaces, sauts de lignes, changements de casse ou de syntaxe peuvent se produire. Le code généré est par contre toujours valide.

Coloration biblatex

Si vous souhaitez colorer du code de fichier .bib utilisant les nouveaux champs et types proposés par

[biblatex->http://www.ctan.org/biblatex], deux solutions s'offrent à vous:
- utiliser <code>biblatex

comme valeur l’attribut lang.
-  utiliser bibtex comme valeur l’attribut lang en ayant mis la ligne suivant dans votre fichier mes_options : define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', 1);

Voir en ligne : http://plugins.spip.net/coloration_code

Dernière modification de cette page le 2 avril 2017

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 19 avril à 17:47, par Laurent Bloch En réponse à : Coloration Code

    Bonjour,

    La colorisation fonctionne correctement, mais le cadre du programme apparaît avec une marge gauche encombrante qui contient le texte « [code] », je souhaiterais retirer cette marge ; cf. par exemple ici :
    https://www.laurentbloch.net/MySpip3/Knuth-Morris-Pratt-en-style

    J’ai regardé le fichier coloration_code.css, j’y ai vu des choses de 40px et 43px de large qui pourraient être ça, mais c’est trop mystérieux pour que j’y touche.

    J’utilise le squelette Escal, cela peut venir de là.

    Merci de toute indication !

    Répondre à ce message

  • Le 6 mars 2013 à 11:05, par captain_torche En réponse à : Coloration Code

    J’aurais voulu ajouter une classe au code généré, pour pouvoir l’afficher au milieu du texte (en display:inline) dans certains cas précis.
    Y a-t’il un moyen de le faire ?
    J’ai testé code class=« html4strict inline », mais le dernier attribut n’est pas pris en compte.

    Répondre à ce message

  • Le 18 décembre 2012 à 16:53, par Thibault En réponse à : Coloration Code

    Bonjour

    Juste une petite remarque : le plugin en version 0.6.6 supprime toutes les lignes vides du texte mis entre les balises <cadre>...</cadre>
    C’est dommage, vu que ça enlève les lignes vide du code source que je veux afficher (et donc rend le code moins lisible)

    En commentant les lignes suivantes :

    de coloration_code_fonctions.php, on supprime le problème.
    À l’origine, ces lignes sont là pour enlever les lignes superflues en début de texte et en fin de texte. Mais ce n’est pas ce qu’elles font, en fait...
    (Peut-être que ceci est déjà corrigé dans la version 0.7 que je n’ai pas testé)

    Merci !!

    Répondre à ce message

  • Le 22 novembre 2012 à 12:43, par FJacq En réponse à : Coloration Code

    Bonjour,

    Je rencontre le soucis suivant : j’ai imposé overflow:auto dans les pages de style pour spip_cadre et spip_code. Cela marche bien tant que je ne tente pas de coloriser. Mais dès que j’ajoute class=« un langage quelconque », le scrolling horizontal ne se fait plus : il est remplacé par un passage à la ligne...

    Quelqu’un a-t-il déjà résolu ce problème ?

    Merci d’avance

    Répondre à ce message

  • Le 28 juillet 2011 à 19:44, par ? En réponse à : Coloration Code

    2 problèmes :

    je n’ai pas les numéros de ligne avec ie9 (serveur easyphp-5.3.4, win7) mais sur autre serveur (lamp ubuntu) oui

    et quand on copie le code avec numéro de ligne depuis poste en win xp , on a des #
    _

    Répondre à ce message

  • Le 10 juin 2011 à 10:15, par Nico En réponse à : Coloration Code

    Je cherche a utiliser la fonction Highlighting Special Lines “Extra” de GeSHi.

    Je ne pense pas que cette fonction soit présente dans le plugin Coloration Code 2 pour spip. Si je me trompe comment faut-il la déclarer au cas par cas.
    ex :

    1. <..cadre class="SPIP" highlight="3">
    2. Mon code ici
    3. avec ma
    4. ligne 3
    5. en surbrillance
    6. <../cadre>

    Télécharger

    Sinon je me doute que la modification va se faire dans le fichier coloration_code.php du plugin mais je ne vois pas trop comment.

    Une aide serait la bienvenue.

    Merci par avance.

    • Le 10 juin 2011 à 12:29, par Nico En réponse à : Coloration Code

      Je me reponds à moi même, j’ai rajouté dans la function coloration_code_color :

      $geshi->set_highlight_lines_extra_style('background-color: #000000;');
              if(preg_match('/hightlight|\d/', $toHighlight, $out)){
      $geshi->highlight_lines_extra($out);

      Je ne suis pas expert des expressions régulières mais cela marche comme cela.

    • Le 10 juin 2011 à 22:16, par Nico En réponse à : Coloration Code

      Bon juste au dessus ca marchait pour les lignes jusqu’à 9.

      J’ai amélioré un peu mon code pour pouvoir faire :

      1. <cadre class="php" highlight=1,2,8>

      Je détaille sur cet article les modifications apportées.

    Répondre à ce message

  • Le 27 mai 2011 à 16:55, par Ben. En réponse à : Coloration Code

    Compatible avec SPIP3.0-dev de ce que j’en ai vu ( pour le class=’spip’). Depuis il y a une nouvelle version de geshi ( GeSHi-1.0.8.10) qui semble apporter de nouveaux languages mais bon pas nécessaire d’en faire une nouvelle version je pense.

    Répondre à ce message

  • Le 15 mai 2011 à 13:06, par raumin En réponse à : Coloration Code

    Bonjour, merci pour ce plugin !

    Une question, pour un code assez long à afficher, est il possible de mettre ce code dans un cadre ? Parceque là avec un code de 100 lignes, la page web devient assez longue...

    Merci d’avance

    Répondre à ce message

  • Le 8 février 2011 à 10:33, par Code404 En réponse à : Coloration Code

    Le lien de téléchargement est cassé (erreur 404), il faut aller le chercher sur la zone et prendre l’archive selon la version de Spip utilisée.

    Répondre à ce message

  • Le 4 avril 2010 à 23:03, par thierrybo En réponse à : Plugin Coloration Code

    Bonjour,

    j’ai une proposition pour le plugin qui pourrait être intéressante à intégrer. On pourrait avoir besoin de différencier le comportement par défaut du lien de téléchargement en fonction de la balise cadre ou code utilisée.
    Pour ma part, la balise code est plutôt pour du code inclut dans le flux du texte, généralement pas très long, même si il peut parfois dépasser une ligne. Dans ce cas je ne veux pas de lien. Je pourrais passer par la classe « sans_telechargement », mais pour en faire un comportement par défaut ce n’est pas pratique.
    Par contre pour les cadres je voudrais toujours le lien télécharger.

    Dans coloration_code.php j’ai placé :

    1. // pour interdire globalement et optionnellement le téléchargement associé
    2. if (!defined('PLUGIN_COLORATION_CODE_TELECHARGE')) {
    3. define('PLUGIN_COLORATION_CODE_TELECHARGE', false);
    4. }
    5. // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    6. if (!defined('PLUGIN_COLORATION_CADRE_TELECHARGE')) {
    7. define('PLUGIN_COLORATION_CADRE_TELECHARGE', true);
    8. }

    Télécharger

    et plus bas :

    1. $plugin_coloration_telecharge = ($cadre == 'cadre') ?
    2. PLUGIN_COLORATION_CADRE_TELECHARGE : PLUGIN_COLORATION_CODE_TELECHARGE;
    3. $telecharge =
    4. ($plugin_coloration_telecharge || in_array('telechargement', $params))
    5. && (strpos($code, "\n") !== false) && !in_array('sans_telechargement', $params);

    Télécharger

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Court-circuit 2

    17 octobre 2011 – 73 commentaires

    Court-circuit 2 permet de rediriger certaines rubriques vers un article particulier. Vous pouvez configurer, dans l’espace privé, les règles de redirection à appliquer. Historique Court-circuit 2 est une évolution de Court-circuit 1, reprenant (...)

  • Envoyer des fichiers avec un formulaire Formidable

    2 janvier – 32 commentaires

    La version 3.0.0 du plugin Formidable permet de créer des formulaires comprenant des envois de fichiers. Cet article regroupe la documentation relative à cette fonctionnalité. Pour une présentation générale de Formidable, voir « Formidable, le (...)

  • Grappes 1.0

    23 novembre 2012 – 27 commentaires

    Présentation et nouveautés Cette version 1.0 du plugin Grappes est un portage pour SPIP 3.x. Le plugin permet de grouper des objets de SPIP dans des grappes. Les objets du core (articles, rubriques, auteurs, etc.) sont pris en charge, ainsi que (...)

  • NoSPAM

    20 novembre 2008 – 277 commentaires

    Un plugin pour limiter le risque de spam dans les forums de SPIP.

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2179 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

Ça spipe par là