#1 Le 19/06/2009, à 14:41
- 0xdeadbeef
[idée] Coloration syntaxique côté client
Bonjour,
la balise quote permet de nommer la personne citée. Est-ce que FluxBB permet de faire une chose analogue avec la balise code?
(J'ai cherché chez eux mais j'ai rien trouvé..)
L'idée serait d'obtenir dans le post quelque chose comme ça (mockup):
Pour obtenir ce résultat, le posteur au moment de l'édition utiliserait la balise code ainsi: code=C/C++
Les avantages que j'y vois:
- sous réserve que FluxBB permette cela, ça me semble peu de modif dans le php
- ça permettrait, en parsant côté client, d'implémenter de la coloration syntaxique (greasemonkey, extension firefox, etc..)
- aucune usine à gaz côté serveur, puisque ça se ferait côté client
- ce serait pérenne: si le membre du forum n'a pas la moulinette nécessaire dans son navigateur, il n'aura pas de coloration et basta
#2 Le 19/06/2009, à 15:23
- pataluc
Re : [idée] Coloration syntaxique côté client
Je sais que coté serveur, il y a geshi qui est très bien (je sais ca ne répond pas à la question) il me semble qu'il en existait aussi coté client en javascript, mais je ne retrouve pas. Au pire, on doit pouvoir bidouiller pour envoyer du code non coloré puis avec un bout d'AJAX qui va bien le remplacer par sa version colorée par geshi.
Hors ligne
#3 Le 19/06/2009, à 15:27
- Kanor
Re : [idée] Coloration syntaxique côté client
Je viens de retouver une librairie javascript
http://www.commentcamarche.net/faq/sujet-3157-webmaster-coloration-syntaxique-dans-vos-pages-web
Hors ligne
#4 Le 19/06/2009, à 15:42
- pataluc
Re : [idée] Coloration syntaxique côté client
j'ai retrouvé: http://alexgorbatchev.com/wiki/SyntaxHighlighter
[edit]OUPS grilled.
Dernière modification par pataluc (Le 19/06/2009, à 15:42)
Hors ligne
#5 Le 19/06/2009, à 16:10
- 0xdeadbeef
Re : [idée] Coloration syntaxique côté client
Je sais que coté serveur, il y a geshi
Oui mais justement, il faudrait éviter. Avant d'ouvrir le thread j'ai fait une recherche: un admin, huats peut-être bien, a signalé qu'il était pas très chaud pour ça.
Au pire, on doit pouvoir bidouiller pour envoyer du code non coloré puis avec un bout d'AJAX qui va bien le remplacer par sa version colorée par geshi.
Un autre truc à éviter, c'est forcer le code côté client à deviner le type de code enfoui dans la balise. Je vois mal un machin bayesien, alors qu'une indication explicite du type de code serait complètement suffisante.
Je viens de retouver une librairie javascript
http://www.commentcamarche.net/faq/suje … -pages-web
Oui mais ça va au delà de ce que je proposais. J'ai jamais dit qu'il faudrait faire cracher du JavaScript supplémentaire par le serveur, pour le rendu côté client. Ma demande était plutôt "balancez-nous l'indication du type de code, après on se débrouillera avec".
C'est pas plus mal d'ailleurs: ça laisse le champ libre à toutes les fantaisies (choix des couleurs, tabulations, support de types de code exotiques) sans qu'ubuntu-fr ait à prendre en charge ce genre de choses dans du JavaScript.. Et aucun besoin de maintenance non plus..
Donc ma question tient toujours, si un admin ou quelqu'un qui connaît bien FluxBB passe dans le coin
EDIT: il s'agissait bien de huats
http://forum.ubuntu-fr.org/viewtopic.ph … 8#p1357658
http://forum.ubuntu-fr.org/viewtopic.ph … 8#p1446558
(l'ouverture d'un nouveau thread m'a semblée justifiée par la nature de ma question)
Dernière modification par 0xdeadbeef (Le 19/06/2009, à 16:32)
#6 Le 19/06/2009, à 17:09
- Kanor
Re : [idée] Coloration syntaxique côté client
J'ai regardé rapidement le code de fluxbb bon j'ai pas vraiment de connaisance en php mais je pense savoir ou il faut modifier en résumé il faut rendre la balise code comme la balise quote qui permet de rajouter l'auteur de la citation donc par exemple on trouve des ligne de se style dans le code de fluxbb
if (preg_match('#\[b\]|\[/b\]|\[u\]|\[/u\]|\[i\]|\[/i\]|\[color|\[/color\]|\[quote\]|\[quoote=|\[/quote\]|\[code\]|\[/code\]|\[img\]|\[/img\]|\[url|\[/url\]|\[email|\[/email\]#i', $username))
Pour rendre ce compatible avec ton idée il faut rendre le code commme ça
if (preg_match('#\[b\]|\[/b\]|\[u\]|\[/u\]|\[i\]|\[/i\]|\[color|\[/color\]|\[quote\]|\[quoote=|\[/quote\]|\[code\]|\[code=|\[/code\]|\[img\]|\[/img\]|\[url|\[/url\]|\[email|\[/email\]#i', $username))
dans le fichier parser.php
// For non-signatures, we have to do the quote and code tags as well
$a[] = '#\[quoote=("|"|\'|)(.*?)\\1\]\s*#i';
$a[] = '#\[quote\]\s*#i';
$a[] = '#\s*\[/quote\]\s*#i';
$a[] = '#\[code\][\r\n]*(.*?)\s*\[/code\]\s*#is';
$b[] = '[quoote=$1$2$1]';
$b[] = '[quoote]';
$b[] = '[/quoote]
'."\n";
$b[] = '[coode]$1[/coode]
'."\n";
lci code doit étre modifier pour s'approcher du code du quote
par exemple ici on a le code qui permet de transformer la balise quote en html
{
$text = str_replace('[quoote]', '</p><blockquote><div class="incqbox"><p>', $text);
$text = preg_replace('#\[quoote=("|"|\'|)(.*)\\1\]#seU', '"</p><blockquote><div class=\"incqbox\"><h4>".str_replace(array(\'[\', \'\\"\'), array(\'[\', \'"\'), \'$2\')." ".$lang_common[\'wrote\'].":</h4><p>"', $text);
$text = preg_replace('#\[\/quote\]\s*#', '</p></div></blockquote><p>', $text);
On peux voir que dans notre cas on veux que l'auteur devienne le type de langage de programmation
voila l'auteur
.str_replace(array(\'[\', \'\\"\'), array(\'[\', \'"\'), \'$2\')." ".$lang_common[\'wrote\'].":
je pense que le '$2 doit correspondre au $2 qu'on voit dans le code au dessus
$b[] = '[quoote=$1$2$1]';
Aprés je ne suis pas sure
sinon voila le code actuel de la balise code
{
$num_lines = ((substr_count($inside[$i], "\n")) + 3) * 1.5;
$height_str = ($num_lines > 35) ? '35em' : $num_lines.'em';
$text .= '</p><div class="codebox"><div class="incqbox"><h4>'.$lang_common['Code'].':</h4><div class="scrollbox" style="height: '.$height_str.'"><pre>'.$inside[$i].'</pre></div></div></div><p>';
}
Donc vous voyez au niveau de a balise <h4> il faut simplement une variable représentant le nom du langage
Voila je laisse les programmeurs php s'amuser avec ça
edit excuser moi pour le formatage mais trop de parasite pour utiliser les balise et si vous voyez des balise coode ou quoote c'est normal j'ai du rajouter un o pour empécher d'activer le formatage
Ce serait bien un bouton pour désactiver le bbcode
Hors ligne
#7 Le 19/06/2009, à 19:35
- 0xdeadbeef
Re : [idée] Coloration syntaxique côté client
Merci ça répond à ma question
Donc en natif, la balise code ne prend pas ça en charge.
Je suis allé voir directement sur trac.ubuntu-fr.org: en plus de tes explications (muchas gracias) il me semble qu'il faut faire bien gaffe au problème des imbrications de citations.. à part ça, de visu, rien d'insurmontable.
Maintenant, questions aux admins:
(1) est-ce que l'idée de départ vous paraît correcte?
(2a) si c'est le cas, vaut-il mieux attendre le relookage du forum pour proposer un patch qui implémenterait ça?
(2b) si en revanche c'est foireux, qu'est-ce qui ne va pas: Farfelu? Problème de sécurité? Intérêt trop marginal?
#8 Le 09/02/2011, à 21:07
- Kanor
Re : [idée] Coloration syntaxique côté client
Code pour l'implémentation de cette fonctionnalité ici
https://code.launchpad.net/~rdubreil/ub … de_syntaxe
utilisation du script js suivant pour faire la coloration
http://www.steamdev.com/snippet/
besoin du framework jquery pour l'utiliser
utilisation de la fonctionnalité en écrivant la balise code de la forme suivante
[ code=python ]
(rajout des espaces pour empêcher son interprétation )
Avis, proposition et amélioration sont les bienvenus.
Dernière modification par Kanor (Le 09/02/2011, à 21:08)
Hors ligne
#9 Le 25/04/2014, à 09:39
- CM63
Re : [idée] Coloration syntaxique côté client
Bonjour,
Je relance ce sujet, je ne sais pas si il a été résolu. Personnellement je ne suis pas pour que cela se fasse du coté client, parce ça va marcher ou pas, ou mal, selon qu'on aura installé truc-chose-muche ou pas sur le client, et la bonne version(1). Je pense qu'il vaudrait mieux que ce soit fait du coté serveur, que le serveur interprète la code "code=Python" et qu'il highlight et fontifie en conséquence, en html pur.
Bien sûr, dans ce cas on ne peut pas personnaliser. Après le serveur peut très bien envoyer un tag non interprété par le html mais qu'une plugin locale pourra interpréter
Bonne journée.
(1) C'est comme pour l'interprétation du code LaTeX, sur les forums qui l'utilisent, comme celui-ci, par exemple, on s'est heureusement orienté vers une solution serveur,
Quoi? Quelque chose que je ne connais pas et qui me fait l'affront d'exister?!
Hors ligne
#10 Le 25/04/2014, à 09:47
- CM63
Re : [idée] Coloration syntaxique côté client
Désolé 0xdeadbeef, au fait j'ai converti ton pseudo en décimal, ca fait : 3735928559 , étonnant non ?
Quoi? Quelque chose que je ne connais pas et qui me fait l'affront d'exister?!
Hors ligne