Partage
  • Partager sur Facebook
  • Partager sur Twitter

Coloration syntaxique BBCode avec JS

    13 janvier 2011 à 17:17:07

    Bonjour,

    Je débute en Javascript. Je souhaiterais confectionner une fonction simple permettant de colorer à la volée du BBCode. Je sais qu'il existe des choses telles que geshi, codemirror, ...
    Mais ça ne m'intéresse pas vraiment. Je voudrais mettre les mains dans le cambouis.
    Ce qu'il faudrait que je sache est comment je dois m'y prendre, la démarche quoi.
    La coloration devrait se faire dans un textarea à la volée. Je comprends qu'il faudra que je modifie le style css des blocs à mettre en évidence mais ce que je n'arrive pas à comprendre c'est comment faire pour que la modification du style des éléments à mettre en évidence se fasse à la volée. onFocus() ? onKeyDown() ? Je me demande s'il ne faudra pas mettre plusieurs éléments à la fois...
    Ce serait bien si vos pouviez me montrer un exemple de code (geshi et codemirror sont trop complexes pour mes maigres connaissances)

    Merci d'avance pour vos réponses. :)
    • Partager sur Facebook
    • Partager sur Twitter
      13 janvier 2011 à 19:37:23

      Beaucoup de prévisualisation font un appel ajax pour afficher le rendu.
      • Partager sur Facebook
      • Partager sur Twitter
      Mon Twitter : @Amatewasu
        14 janvier 2011 à 11:18:46

        Bonjour,

        je n'ai pas très bien comprend ce que tu voulais faire .. Geshi ne colore pas du BBcode, il colore du code (php, css, C++ ..).
        Voudrais-tu mettre en page automatiquement ? par exemple [i]Italic[/i], met directement en italic sans afficher le [i] ?
        • Partager sur Facebook
        • Partager sur Twitter
          14 janvier 2011 à 13:08:40

          Citation : cappie

          Bonjour,

          je n'ai pas très bien comprend ce que tu voulais faire .. Geshi ne colore pas du BBcode, il colore du code (php, css, C++ ..).
          Voudrais-tu mettre en page automatiquement ? par exemple [i]Italic[/i], met directement en italic sans afficher le [i] ?


          Après reelcture de mon premier message, je me rends compte qu'effectivement, ce n'est pas très clair tout ça. Alors voilà ma reformulation...
          Je voudrais réaliser une fonction Javascript permettant de modifier à la volée le style des balises BBCode ([...] [/...]) afin de pouvoir mieux lire un message sur un forum (le texte ne serait pas modifié, seuls les balises seraient mises en valeur par une couleur que je définirais). Je me suis donc intéressé aux applications permettant la coloration syntaxique de code. J'ai utilisé Codemirror (l'auteur est très réactif et il semblerait que ce soit vraiment un bon moyen de faire de la coloration syntaxique à la volée) pour des tests, mais je n'ai pas besoin d'un outil aussi performant, il me faudrait juste pouvoir colorer les balises BBCode.
          Mon souci est que je ne sais pas trop par où commencer... Modifier le style d'un élément dans un textarea, cela devrait pouvoir se faire à partir de regexp (recherche en utilisnat un motif, puis modifier le style de cet élément, je ne sais pas trop encore comment mais je devrais trouver ça dans l'ouvrage que je possède). Là où je coince est sur l'évènement à traiter. Je rappelle que je voudrais que cela se passe à la volée, c'est à dire lorsque je saisis du texte, il faudrait que la coloration se fasse de manière simultanée.
          Pour résumer, il faudrait que je comprenne en fait comment la coloration syntaxique dans un textarea se fait en générale, le mécanisme de la chose. J'ai eu beau chercher sur le Web, je n'ai rien trouvé...
          En espérant avoir été plus clair hein :p
          Merci :)
          • Partager sur Facebook
          • Partager sur Twitter
            14 janvier 2011 à 13:17:35

            Bonjour,

            j'ai compris ce que tu voulais faire :)
            Pour ma part, je procèderais de cette manière (sans entrer dans les details de programmation)
            - Utilisation de jQuery
            - Lorsque [b] est reperé, on entoure la balise de <span class="b"> [b] </span>
            • Partager sur Facebook
            • Partager sur Twitter
              14 janvier 2011 à 13:23:00

              Citation : cappie

              Bonjour,

              j'ai compris ce que tu voulais faire :)
              Pour ma part, je procèderais de cette manière (sans entrer dans les details de programmation)
              - Utilisation de jQuery
              - Lorsque [b] est reperé, on entoure la balise de <span class="b"> [b] </span>


              Merci.
              Non, je n'ai pas envie d'utiliser de bibliothèque telle que jQuery. Je voudrais quelque chose à base de Javascript tout bête ;)
              OK pour la coloration, je vois comment faire. En revanche, quel est l'évènement à traiter ? onFocus, onKeyDown, ... ? Plusieurs à la fois ?
              • Partager sur Facebook
              • Partager sur Twitter
                14 janvier 2011 à 14:04:44

                En javascript pur, ceci devrait t'aider à faire tes remplacements si tu connais les regexp :
                http://toutjavascript.com/reference/re [...] ace&parent=15
                • Partager sur Facebook
                • Partager sur Twitter
                  14 janvier 2011 à 14:18:58

                  Bonjour,

                  tu reprend le value de ton textarea à chaque "onKeyDown" & tu vérifie la présence de balise BBcode non ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 janvier 2011 à 18:49:01

                    Citation : cappie

                    Bonjour,

                    tu reprend le value de ton textarea à chaque "onKeyDown" & tu vérifie la présence de balise BBcode non ?


                    Je ne pensais pas que ce serait aussi simple.

                    Citation

                    En javascript pur, ceci devrait t'aider à faire tes remplacements si tu connais les regexp :
                    http://toutjavascript.com/reference/re [...] ace&parent=15


                    Pour les regexp c'est là : http://toutjavascript.com/reference/re [...] Exp&parent=43
                    Et oui, j'ai un peu manipulé les regexp notamment aussi en php. Merci pour la ressource.
                    OK, j'ai de quoi commencer là. Je vous tiens au courant. Merci beaucoup.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Coloration syntaxique BBCode avec JS

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown