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é
20 discussions
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
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 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.
merci, c’est corrigé …
Répondre à ce message
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é :
et plus bas :
Répondre à ce message
sur ce site (contrib)
si je met une classe spip
j’ai des espace autour des
[){
. A croire qu’il n’échappe pas à propre.Répondre à ce message
L’installation automatique (SPIP 2) ne fonctionne PAS, sinon les fichiers sont placés dans le dossier /lib/
Il faut passer _obligatoirement_ par une installation manuelle si on veut l’installer.
Répondre à ce message
Bonjour,
je viens de tester sur spip 1.9.2 et du code php. En utilisant CODE : aucun effet, marche avec CADRE.
de même, si je met
il n’en tient pas compte et me propose toujours le téléchargement.
Bon, je viens de regarder dans le code :
1- c’est sans_telecharge qu’il faut mettre , pas sans_telechargement
2- Même avec le point 1 ça ne marche pas. C’est extrêmement bizarre, j’ai débogué le fichier mes_options.php à la ligne
et bien
!(in_array("sans_telecharge", $params))
vaut toujours 1 même si « sans_telecharge » est bien présent dans $params !!?Bonjour,
Je viens de corriger ce que vous venez de soulever (telechargement / sans_telechargement).
J’ai aussi supprimé ce traitre de fichier mes_options.php qui trainait dans ce plugin, qui n’a rien à y faire, et qui ne servait à rien (il n’était pas appelé) !
http://zone.spip.org/trac/spip-zone/changeset/27400
MM.
Ca y est, ça marche :
- concernant le fait que ça ne marchait qu’avec cadre et pas code, j’avais un caractère invisible dans le nom de la class, mais non visible : je voyais class=« sans_telecharge » mais au débogage il me disait « class= »sans_telecharge←", provenant d’un copier/coller. J’ai mis du temps à le trouver celui-la.
- Merci pour ta correction à propos de mes_options.php qui n’était pas utilisé, mais je parle depuis le début de SPIP 1.9.2 ... et la pour le coup il le faut, et ce coup ci il y a un vraiment un bug, ça ne vient pas de moi :-)
A la fin de mes_options.php, rajouter :
sinon on aura jamais la coloration avec la balise
<code>
.Répondre à ce message
Bonjour,
J’ai testé donc le nom de la class (il faut le « L ») :
html4strict
Avec mes remerciements !
KMk
Répondre à ce message
Re-bonjour,
Avec spip 2.0 (plugin couteau suisse dans celui-ci), pas de numérotation ni de téléchargement, que ce soit avec « code » comme avec « cadre » (avec spip 1.9, « cadre » me permet d’obtenir une numérotation et la proposition de téléchargement, si je mets les deux class dans la balise cadre, class=« langage » & class=« chargement ».
Bigre...
Cordialement,
KMk
Essaie
code class="html4strict"
pour voir ?Bonjour, c’est plutôt en htm4strict, sans le L !!!
Répondre à ce message
Bonjour,
Je viens de tester ce plugin intéressant dès qu’il s’agit de communiquer des morceaux de code.
Spip 1.92d. Pas de résultat avec les balises :
code class=« langage »... /code
Numérotation des lignes avec les balises :
cadre class=« langage »... /cadre
Point de couleurs... aurais-je raté une marche ?
Codialement,
KMk
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 : |