[SPIP Zone] plugin coloration code

Bonjour et désolé pour la longueur du message...

J'ai testé le plugin coloration_code pour SPIP. Ce truc est génial et
je pense m'en servir plutôt que d'utiliser la bidouille dont je me
servais jusqu'ici pour afficher du code dans un cadre (j'entourais mon
code avec les balises <pre> et <code>).

Par contre je trouve que le code généré par le plugin est un peu
chargé. Lorsqu'on insère du code dans la balise <carde>, avec la
classe qui va bien pour définir le langage, on obtient ceci :

<div class="coloration_code">
<div class="spip_cadre spip">
<div class="spip" style="font-family: monospace;">
...
</div>
<div class="cadre_download" style="text-align: right;">
</div>

C'est un peu le syndrome de la "divite". Du coup je voudrais modifier
le plugin, ou plutôt ajouter une option pour qu'on puisse afficher le
code dans une seule balise <pre> dont je me servais jusqu'ici pour
afficher du code.

En fouinant dans la doc de GeSHi, code qui gère la coloration dans le
plugin, j'ai lu qu'on pouvait choisir le type de conteneur pour le
code affiché. Et on peut définir un conteneur <pre> à la place d'une
<div> comme ceci :

$geshi->set_header_type(GESHI_HEADER_PRE);

Pour l'instant j'ai joué un peu le bourrin en élaguant le fichier php
du plugin pour l'adapter à mes besoins, mais je me dit que je vais pas
massacrer le travail des autres pour faire mon petit truc qui ne
servirait qu'à moi. En fait ça serait pas mal d'en faire une option
pour le plugin. Mais là je sèche un peu...

Autre problème : "Le lien telecharger en option"

Dans le fichier de description du plugin il est inqiqué :

"Par défaut, si le code mis en surbrillance fait plus d'une ligne, il
est mis en cache sous forme textuelle et proposé au téléchargement. Ce
fonctionnement est controlé globalement par une constante
PLUGIN_COLORATION_CODE_TELECHARGE défaut true."

J'ai essayé de définir cette constante à "false" dans le fichier
coloration-code.php mais ça ne fonctionne pas.

define('PLUGIN_COLORATION_CODE_TELECHARGE','false');

Bref ça marche pas, mais je suis têtu...(pour l'instant j'ai une fois
de plus joué le bourrin en enlevant les lignes qui génèrent le fichier
txt et le lien dans le fichier coloration_code.php).

Liens vers la doc de SPIP

Pour finir j'ai vu qu'on pouvait définir des liens vers des
documentations pour chaque balise de code affichée
(http://qbnz.com/highlighter/geshi-doc.html#language-file-urls).
Pensez que ça serait bien de le faire pour le fichier de langue spip ?
Si personne n'est en train de le faire (histoire de pas ré-inventer la
roue) je peux m'en occuper. Ca au moins je saurai le faire (du moins
j'ai réussi à le faire pour les critères). Je pourrai
par exemple me baser sur les liens de docs définit sur la page
Glossaire - SPIP que James nous à dévoilé lors du dernier
SpipApéro à Brest...

Donc voilà mes idées pour ce plugin dont je remercie beaucoup les auteurs.

Bonjour,
bruno bergot wrote:
> Bonjour et désolé pour la longueur du message...
>
> J'ai testé le plugin coloration_code pour SPIP. Ce truc est génial et
> je pense m'en servir plutôt que d'utiliser la bidouille dont je me
> servais jusqu'ici pour afficher du code dans un cadre (j'entourais mon
> code avec les balises <pre> et <code>).
>
> Par contre je trouve que le code généré par le plugin est un peu
> chargé. Lorsqu'on insère du code dans la balise <carde>, avec la
> classe qui va bien pour définir le langage, on obtient ceci :
>
> <div class="coloration_code">
> <div class="spip_cadre spip">
> <div class="spip" style="font-family: monospace;">
> ...
> </div>
> <div class="cadre_download" style="text-align: right;">
> </div>
>
> C'est un peu le syndrome de la "divite". Du coup je voudrais modifier
> le plugin, ou plutôt ajouter une option pour qu'on puisse afficher le
> code dans une seule balise <pre> dont je me servais jusqu'ici pour
> afficher du code.
>
> En fouinant dans la doc de GeSHi, code qui gère la coloration dans le
> plugin, j'ai lu qu'on pouvait choisir le type de conteneur pour le
> code affiché. Et on peut définir un conteneur <pre> à la place d'une
> <div> comme ceci :
>
> $geshi->set_header_type(GESHI_HEADER_PRE);
>
> Pour l'instant j'ai joué un peu le bourrin en élaguant le fichier php
> du plugin pour l'adapter à mes besoins, mais je me dit que je vais pas
> massacrer le travail des autres pour faire mon petit truc qui ne
> servirait qu'à moi. En fait ça serait pas mal d'en faire une option
> pour le plugin. Mais là je sèche un peu...

Oui, ça serait imaginable, pour l'instant on met GESHI_HEADER_DIV pour les <cadre> et GESHI_HEADER_NONE pour les <code> mais on pourrait tirer ça de constantes de configuration et/ou surcharge local genre:
<cadre class="php" header="pre">

De même , il serait intéressant de pouvoir conditionner la numérotation des lignes, pour l'instant <cadre> en récupère et pas <code>
>
> Autre problème : "Le lien telecharger en option"
>
> Dans le fichier de description du plugin il est inqiqué :
>
> "Par défaut, si le code mis en surbrillance fait plus d'une ligne, il
> est mis en cache sous forme textuelle et proposé au téléchargement. Ce
> fonctionnement est controlé globalement par une constante
> PLUGIN_COLORATION_CODE_TELECHARGE défaut true."
>
> J'ai essayé de définir cette constante à "false" dans le fichier
> coloration-code.php mais ça ne fonctionne pas.
>
> define('PLUGIN_COLORATION_CODE_TELECHARGE','false');
>
> Bref ça marche pas, mais je suis têtu...(pour l'instant j'ai une fois
> de plus joué le bourrin en enlevant les lignes qui génèrent le fichier
> txt et le lien dans le fichier coloration_code.php).

Ooops ! Là c'est ma faute, désolé.
En fait , coloration_code est un plugin particulier car il possède 2 plugin.xml un pour 1.9.1 (celui qu'on voit directement dans l'administration) et un pour le "trunk" 1.9.2 (dans l'onglet en bas).
C'est nécessaire car le méchanisme de traitement de ces balises a évolué et 1.9.2 n'était plus compatible.

Il y a donc 2 plugins coloration_code.php et trunk/coloration_code.php.

Je n'ai développé cette option pour le téléchargement que sur la 1.9.2 et j'ai malheureusement fait une copie un peu violente de la description (pas taper!)

Je pense pouvoir la transposer sans problème ... en même temps je regarderai pour les autres options

>
> Liens vers la doc de SPIP
>
> Pour finir j'ai vu qu'on pouvait définir des liens vers des
> documentations pour chaque balise de code affichée
> (http://qbnz.com/highlighter/geshi-doc.html#language-file-urls).
> Pensez que ça serait bien de le faire pour le fichier de langue spip ?
> Si personne n'est en train de le faire (histoire de pas ré-inventer la
> roue) je peux m'en occuper. Ca au moins je saurai le faire (du moins
> j'ai réussi à le faire pour les critères). Je pourrai
> par exemple me baser sur les liens de docs définit sur la page
> http://www.spip.net/@ que James nous à dévoilé lors du dernier
> SpipApéro à Brest...

Bonne idée, il te faudrait un compte sur le svn , justement je commute ce message sur la zone ... oops , c'est déjà fait :slight_smile:
--
toggg

bertrand Gugger wrote:

Bonjour,
bruno bergot wrote:
> Autre problème : "Le lien telecharger en option"
>
> Dans le fichier de description du plugin il est inqiqué :
>
> "Par défaut, si le code mis en surbrillance fait plus d'une ligne, il
> est mis en cache sous forme textuelle et proposé au téléchargement. Ce
> fonctionnement est controlé globalement par une constante
> PLUGIN_COLORATION_CODE_TELECHARGE défaut true."
>
> J'ai essayé de définir cette constante à "false" dans le fichier
> coloration-code.php mais ça ne fonctionne pas.
>
> define('PLUGIN_COLORATION_CODE_TELECHARGE','false');
>
> Bref ça marche pas, mais je suis têtu...(pour l'instant j'ai une fois
> de plus joué le bourrin en enlevant les lignes qui génèrent le fichier
> txt et le lien dans le fichier coloration_code.php).

Ooops ! Là c'est ma faute, désolé.
En fait , coloration_code est un plugin particulier car il possède 2 plugin.xml un pour 1.9.1 (celui qu'on voit directement dans l'administration) et un pour le "trunk" 1.9.2 (dans l'onglet en bas).
C'est nécessaire car le méchanisme de traitement de ces balises a évolué et 1.9.2 n'était plus compatible.

Il y a donc 2 plugins coloration_code.php et trunk/coloration_code.php.

Je n'ai développé cette option pour le téléchargement que sur la 1.9.2 et j'ai malheureusement fait une copie un peu violente de la description (pas taper!)

Je pense pouvoir la transposer sans problème ... en même temps je regarderai pour les autres options
  

Voilà : http://trac.rezo.net/trac/spip-zone/changeset/7862 , il faudrait tester , je n'ai pas de 1.9.1.
Si c'est bon , je prépare pour mettre le header et la numérotation en options.
--
toggg