Siechfred: Syntax-Highlighter für PHP und Javascript gesucht

Hallo.

Ich bin auf der Suche nach einem Syntax-Highlighter für PHP- und Javascript-Code. Auf CPAN bin ich bezüglich Perl und HTML schon fündig geworden (Syntax::Highlight::Perl und Syntax::Highlight::HTML sind bereits im Einsatz).

Es gibt zwar das Paket Syntax::Highlight::Engine::Kate, das mir aber im Moment noch etwas suspekt ist bzw. mir für mein Vorhaben etwas overdressed erscheint, aber vielleicht kann jemand meine Zweifel zerstreuen. Mir wäre es jedoch lieber, wenn jemand ähnliche Leichtgewichte kennen würde wie die, die bereits im Einsatz sind.

Vielen Dank für alle Ideen und Hinweise.

Siechfred

--
Ich bin strenggenommen auch nur interessierter Laie. (molily)
  1. gudn tach!

    Ich bin auf der Suche nach einem Syntax-Highlighter für PHP- und Javascript-Code.

    sowas wie highlight?

    prost
    seth

    1. sowas wie highlight?

      Wenn ich das richtig sehe, ist das ein Kommandozeilentool, ich suche aber was für den Einsatz "on-the-fly". Die Inhalte kommen als Rohdaten aus einer Datenbank und sollen durch den Highlighter geschickt werden, also so:

      sub colorHTML {  
        require Syntax::Highlight::HTML;  
        my $c = shift;  
        my $f = Syntax::Highlight::HTML->new(pre => 0);  
        return $f->parse($c);  
      }
      

      Das von dir genannte Tool würde zwar auch den gewünschten HTML-Code erzeugen, den müsste ich dann allerdings als statische HTML-Datei speichern, oder habe ich da was übersehen?

      Siechfred

      --
      Ich bin strenggenommen auch nur interessierter Laie. (molily)
      1. gudn tach!

        sowas wie highlight?

        Wenn ich das richtig sehe, ist das ein Kommandozeilentool, ich suche aber was für den Einsatz "on-the-fly".

        ja, geht aber doch auch. z.b.

        $f = echo $c | highlight;

        oder so aehnlich, oder?

        notfalls halt erst speichern in einer temp-datei und dann

        $f = highlight -i tmpfile;

        prost
        seth

        1. Hey,

          oder so aehnlich, oder?

          dein Unix ist ja grauenhaft.

          #!perl  
          use strict;  
          use diagnostics;  
          use IO::Handle qw();  
          use IPC::Open2 qw(open2);  
            
          my @highlighter = ('/usr/bin/highlight', '-Sphp', '-i -'); # STDIN  
          my $php_raw = '<?php echo("Hallo Welt!")?>';  
          my $php_highlighted;  
            
          {  
              my ($r, $w) = (IO::Handle->new, IO::Handle->new);  
            
              my $pid = open2($r, $w, @highlighter);  
              print $w $php_raw;  
              close $w;  
            
              {  
                  local $/ = undef; # slurp!  
                  $php_highlighted = <$r>;  
              };  
              close $r;  
            
              waitpid $pid, 0;  
          };  
          
          
          --
          水-金-地-火-木-土-天-海-冥
          1. gudn tach!

            oder so aehnlich, oder?
            dein Unix ist ja grauenhaft.

            wie es mir, so ich ihm.

            #!perl
            use strict;
            use diagnostics;
            use IO::Handle qw();
            use IPC::Open2 qw(open2);

            my @highlighter = ('/usr/bin/highlight', '-Sphp', '-i -'); # STDIN
            my $php_raw = '<?php echo("Hallo Welt!")?>';
            my $php_highlighted;

            {
                my ($r, $w) = (IO::Handle->new, IO::Handle->new);

            my $pid = open2($r, $w, @highlighter);
                print $w $php_raw;
                close $w;

            {
                    local $/ = undef; # slurp!
                    $php_highlighted = <$r>;
                };
                close $r;

            waitpid $pid, 0;
            };

            ei ja, ich hab doch gesagt: "oder so aehnlich"... ;-)

            prost
            seth

          2. dein Unix ist ja grauenhaft.

            Hehe, du müsstest mal meins sehen ;)

            my @highlighter = ('/usr/bin/highlight', '-Sphp', '-i -'); # STDIN

            Das würde doch voraussetzen, dass man den Highlighter auf dem entfernten Server irgendwie installiert bekommt, richtig? Und da ich aus der Windows-Welt komme und zudem keinen Rootzugang auf dem Server habe (jaja, ich weiß, dass das in deinen Augen ein Qualitätsmangel ist), dürfte das ein schwieriges Unterfangen werden, oder?

            Siechfred

            --
            Ich bin strenggenommen auch nur interessierter Laie. (molily)
            1. Hallo Siechfred.

              my @highlighter = ('/usr/bin/highlight', '-Sphp', '-i -'); # STDIN

              Das würde doch voraussetzen, dass man den Highlighter auf dem entfernten Server irgendwie installiert bekommt, richtig? Und da ich aus der Windows-Welt komme und zudem keinen Rootzugang auf dem Server habe (jaja, ich weiß, dass das in deinen Augen ein Qualitätsmangel ist), dürfte das ein schwieriges Unterfangen werden, oder?

              Installiere doch einfach nach ~ oder wahlweise einem Unterverzeichnis darin.

              Einen schönen Freitag noch.

              Gruß, Mathias

              --
              ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
              debian/rules
              1. Installiere doch einfach nach ~ oder wahlweise einem Unterverzeichnis darin.

                Äpfel, Birnen, Fragezeichen?

                Ich habe mir jetzt mal die Downloadseite vom Highlighter angesehen, da geht's schon los: Welches Paket benötige ich denn eigentlich? Was bedeutet "installieren": Einfach runterladen, auspacken und das Programm auf den Server hochladen oder wie? Bitte denke daran, ich komme aus der Windows-Welt :)

                Siechfred

                --
                Ich bin strenggenommen auch nur interessierter Laie. (molily)
                1. Hallo Siechfred.

                  Installiere doch einfach nach ~ oder wahlweise einem Unterverzeichnis darin.

                  Äpfel, Birnen, Fragezeichen?

                  Ich habe mir jetzt mal die Downloadseite vom Highlighter angesehen, da geht's schon los: Welches Paket benötige ich denn eigentlich?

                  Eines der Quellpakete. (Also *.tar.gz bzw. *.tar.bz2)

                  Was bedeutet "installieren":

                  $ tar xvf archiv.tar.*
                  $ cd eben_entpacktes_verzeichnis
                  $ ./configure --prefix=$HOME/local
                  $ make && make install

                  Fertig; hiermit wird das Programm unter ~/local installiert und ist dort dann unter ~/local/bin/highlight verfügbar.

                  Alternativ könntest du auch die vorgebauten Pakete (*.rpm, …) herunterladen und manuell entpacken. Auch darin befindet sich ein vollständig funktionstüchtiger Verzeichnisbaum mit allen erforderlichen Dateien.

                  Einfach runterladen, auspacken und das Programm auf den Server hochladen oder wie?

                  Nach „make install“ kannst du das gesamte local-Verzeichnis auf deinen Server hochladen. Ob es nun ausgeführt werden kann, steht auf einem anderen Blatt.

                  Einen schönen Freitag noch.

                  Gruß, Mathias

                  --
                  ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
                  debian/rules
                  1. Was bedeutet "installieren":
                    $ tar xvf archiv.tar.*
                    $ cd eben_entpacktes_verzeichnis
                    $ ./configure --prefix=$HOME/local
                    $ make && make install

                    Ich habe aber kein Linux.

                    Alternativ könntest du auch die vorgebauten Pakete (*.rpm, …) herunterladen und manuell entpacken. Auch darin befindet sich ein vollständig funktionstüchtiger Verzeichnisbaum mit allen erforderlichen Dateien.

                    Ne, du, lass mal gut sein, das ist mir alles suspekt. Ich werde wohl einfach Syntax::Highlight::Perl umschreiben :)

                    Siechfred

                    --
                    Ich bin strenggenommen auch nur interessierter Laie. (molily)
                    1. Hallo Siechfred.

                      Was bedeutet "installieren":
                      $ tar xvf archiv.tar.*
                      $ cd eben_entpacktes_verzeichnis
                      $ ./configure --prefix=$HOME/local
                      $ make && make install

                      Ich habe aber kein Linux.

                      Auf deinem Server schon. Und dort muss es letztendlich laufen.

                      Einen schönen Freitag noch.

                      Gruß, Mathias

                      --
                      ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
                      debian/rules
                      1. Ich habe aber kein Linux.
                        Auf deinem Server schon. Und dort muss es letztendlich laufen.

                        Ich habe aber keinen shell-Zugriff (liest hier eigentlich irgendjemand meine Postings?) :-|

                        Siechfred

                        --
                        Ich bin strenggenommen auch nur interessierter Laie. (molily)
                        1. Hallo Siechfred.

                          Ich habe aber kein Linux.
                          Auf deinem Server schon. Und dort muss es letztendlich laufen.

                          Ich habe aber keinen shell-Zugriff (liest hier eigentlich irgendjemand meine Postings?) :-|

                          Hm, ich habe übersehen, dass du der OP bist.

                          Einen schönen Freitag noch.

                          Gruß, Mathias

                          --
                          ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
                          debian/rules
                          1. Hm, ich habe übersehen, dass du der OP bist.

                            *g* ja, auch das kommt gelegentlich vor ;)

                            Siechfred

                            --
                            Ich bin strenggenommen auch nur interessierter Laie. (molily)
                    2. gudn tach!

                      Ich habe aber kein Linux.

                      zeit fuer cygwin?

                      ok, eine alternative:
                      bis vor kurzem habe ich noch das schon etwas betagte code2html verwendet. das ist bloss eine perl-datei (die nicht grossartig installiert/compiliert werden muss).

                      das gibt allerdings ziemlich altes html aus, deswegen schrieb ich das vor einiger zeit mal ein wenig um, um strict-html (obgleich nicht besonders huebsches) zu generieren. vielleicht taugt's ja was fuer deine zwecke. code2html (strict-html)

                      prost
                      seth

                      1. code2html (strict-html)

                        Ok, danke, das schaue ich mir mal an.

                        Siechfred

                        --
                        Ich bin strenggenommen auch nur interessierter Laie. (molily)