Syntax-Highlighter für PHP und Javascript gesucht
Siechfred
- perl
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
gudn tach!
Ich bin auf der Suche nach einem Syntax-Highlighter für PHP- und Javascript-Code.
sowas wie highlight?
prost
seth
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
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
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;
};
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
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
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
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
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
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
Hallo Siechfred.
Was bedeutet "installieren":
$ tar xvf archiv.tar.*
$ cd eben_entpacktes_verzeichnis
$ ./configure --prefix=$HOME/local
$ make && make installIch habe aber kein Linux.
Auf deinem Server schon. Und dort muss es letztendlich laufen.
Einen schönen Freitag noch.
Gruß, Mathias
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
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
Hm, ich habe übersehen, dass du der OP bist.
*g* ja, auch das kommt gelegentlich vor ;)
Siechfred
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
Ok, danke, das schaue ich mir mal an.
Siechfred