2 use Syntax::Highlight::Engine::Kate ();
18 our %interpretersx = (
22 'node' => 'Javascript',
26 class Gitalist::ContentMangler::Resolver::Default with Gitalist::ContentMangler::Resolver {
27 method resolve ($data) {
28 if($data->{action} eq 'diff_fancy') {
29 return 'Gitalist::ContentMangler::Transformer::SyntaxHighlight' => {language => 'Diff', css => 'Diff'};
31 my $kate = Syntax::Highlight::Engine::Kate->new();
32 # Detect .t files as perl code
33 $kate->extensions->{'*.t'} = ['Perl'];
34 my $language = $kate->languagePropose($data->{filename}) || $kate->languagePropose(lc $data->{filename});
35 if(!$language && exists($data->{blob})) {
36 my $interp = substr(${$data->{blob}}, 0, 256);
37 if($interp =~ /^#!(?:\S*\/)?([^\s\/]+)/) {
40 for my $interpreter (@interpreters) {
41 if($interp =~ /$interpreter/) {
42 $language = $interpretersx{$interpreter} || ucfirst $interpreter;
48 return unless $language;
49 return 'Gitalist::ContentMangler::Transformer::SyntaxHighlight' => {language => $language, css => 'Code'};