Présentation
Dans vos articles, il suffit de mettre le code entre les balises <
code class="langage">...</
code>
ou avec un cadre <
cadre class="langage">...</cadre>
.
Ce qui permet d’obtenir ce genre de présentation avec <cadre class='html5'>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Plugins SPIP</title>
<script src="prive/javascript/jquery.js" type="text/javascript"></script>
<script src="prive/javascript/jquery.form.js" type="text/javascript"></script>
<script src="prive/javascript/ajaxCallback.js" type="text/javascript"></script>
<!-- insert_head -->
<link rel='stylesheet' href="prive/spip_style.css" type="text/css" />
<link rel='stylesheet' href='http://plugins.spip.net/prive/spip_admin.css' type='text/css' />
</head>
Classes des langages les plus courants |
---|
spip |
javascript |
php |
html4strict ou html5 |
css |
xml |
Voir les langages supportés :
https://git.spip.net/spip-contrib-extensions/coloration_code/src/branch/master/geshi/geshi
Lien de téléchargement
Par défaut le code n’est pas proposé avec un lien de téléchargement sauf si on modifie la constante PLUGIN_COLORATION_CODE_TELECHARGE
.
Dans ce cas, si le code colorisé fait plus d’une ligne, il est mis en cache sous forme textuelle et proposé au téléchargement par un lien Télécharger placé sous le bloc colorisé .
Si la constante est activé, on peut désactivé ponctuellement le téléchargement en rajoutant la classe « sans_telechargement »
<
code class="php sans_telechargement">
.
Le filtre |coloration_code_color
Vous pouvez aussi utiliser le filtre |coloration_code_color
dans un squelette avec : #TEXTE**|coloration_code_color{spip, code}
Le filtre colorise #TEXTE
avec le language « spip » et en format « code » ; par exemple avec un squelette nommé lecode.html
, l’url d’appel depuis un article serait :
<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>
Constantes
Le plugin est livré avec une série de constantes que vous pouvez refinir à votre guise dans mes_options.php
Voici les valeurs par défaut
// pour interdire globalement et optionnellement le téléchargement associé
define('PLUGIN_COLORATION_CODE_TELECHARGE', true);
// pour utiliser des styles inline (ou des classes css)
define('PLUGIN_COLORATION_CODE_STYLES_INLINE', true); // false mettra des class et une css associe
// pour mettre des classes css MAIS ne mettre aucun style correspondant
// cela suppose donc qu'une CSS externe a ce plugin s'occupe de les styler
define('PLUGIN_COLORATION_CODE_SANS_STYLES', false); // true mettra des class
// pouvoir definir la taille des tablations (defaut de geshi : 8)
// define('PLUGIN_COLORATION_CODE_TAB_WIDTH', 4);
// Liens externes sur les mots cles de langage (defaut de geshi : true)
define('PLUGIN_COLORATION_CODE_LIENS_LANGAGE', true); // false pour les eviter
// colorier le code SPIP ?
define('PLUGIN_COLORATION_CODE_COLORIEUR_SPIP', 'spip');
Plugin complémentaire
Il est vivement conseillé d’utliser le plugin coloration code avec le plugin Pre & Code qui améliore la présentation des blocs de code.
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
biblatex
comme valeur l’attributlang
. - utiliser
bibtex
comme valeur l’attributlang
en ayant mis la ligne suivant dans votre fichiermes_options
:define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', 1);
Discussions par date d’activité
2 discussions
Bonjour,
Depuis la mise à jour en v1.0.0 par SVP, sur un SPIP 4.2, le plugin ne fonctionne plus du tout chez moi.
L’identification des langages et la mise en forme des cadres ne s’applique plus.
J’ai testé les deux modes (statique et dynamique) mais rien à faire, même en vidant le cache (spip et navigateur)
Voir capture avec 2 cadres, le 1er est en class html, le second en class bash ... aucune différence !
J’ai loupé un truc où ... ??? 🤔
Merci par avance
Bonjour
J’ai aussi le même constat sur un spip 42.7
Je précise qu’en plus le plugin « Pre & code » ne fonctionne plus lorsque « Coloration code » est activé.
Répondre à ce message
Bof, bof, :) Comme dit si bien la documentation, ce ne sont que les les quelques cas pris en charge par SPIP qui sont colorisés ...alors que la bibliothèque Geshi permet bien plus :o
Je continue à creuser :D
il suffit de mettre le nom du code dans la class du cadre ?
comme ceci, exemple d’un cadre code ou
Il vous faudrait la coloration pour quel langage ?
bizarre dans la prévisualisation ça semble fonctionner :)
Comme mentionne la documentation du plugin :
Effectivement, il y a tous les langages supportés par GeSHi (j’avais cru, à la lecture, qu’une sélection avait été faite mais la bibliothèque/lib est visiblement complète)
Au fait, pour le C++ c’est « cpp »
Par contre, ça n’a pas l’air de fonctionner pour tous, comme le montrent tes exemples (j’avais, pour ma part, testé « go » et « python » aussi, ainsi que « sql »/« plsql »/« postgresql » qui n’ont pas fonctionné alors « mysql » et « spip » oui)
Bon, entre temps j’ai trouvé... GeSHi est bien appliqué (et en regardant le source de la page, « c++ » est magiquement reconnu...) Par contre, il y ici (toujours dans le code source de la page) un appel à « plugins/gribouille2/css/geshi.css » qui associe les classes générées par GeSHi aux classes englobantes suivantes : « spip_spip » ; « spip_php » ; « spip_xml » ; « spip_css » ; « spip_bash »
Donc, ce qui semble fonctionner chez moi doit provenir d’un plugin qui défini les CSS qui vont bien (sachant que le plugin lui-même ne propose que la numérotation dans l’espace privé...) Mystère résolu...
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |