12 |
|
|
13 |
sub get_snippet { |
sub get_snippet { |
14 |
my $context_chars = 100; |
my $context_chars = 100; |
15 |
|
my $max_desc = 16384; # 16k to filter |
16 |
|
|
17 |
my $desc = shift || return ''; |
my $desc = shift || return ''; |
18 |
|
$desc = substr($desc,0,$max_desc) if (length($desc) > $max_desc); |
19 |
# test if $desc contains any of our query words |
# test if $desc contains any of our query words |
20 |
my @snips; |
my @snips; |
21 |
|
|
35 |
$af =~ s,^\S+\s+|\s+\S+$,,gs; |
$af =~ s,^\S+\s+|\s+\S+$,,gs; |
36 |
$bef =~ s,^\S+\s+|\s+\S+$,,gs; |
$bef =~ s,^\S+\s+|\s+\S+$,,gs; |
37 |
|
|
38 |
push(@snips, "$bef <span style=\"background:".$colors[$i]."\">$qm</span> $af"); |
push(@snips, "$bef <span style=\"background:".$colors[$i]."; color:black;\">$qm</span> $af"); |
39 |
$i++; |
$i++; |
40 |
$i = 0 if ($i > $#colors); |
$i = 0 if ($i > $#colors); |
41 |
} |
} |
42 |
} |
} |
43 |
my $ellip = ' ... '; |
my $ellip = ' ... '; |
44 |
my $snippet = $ellip. join($ellip, @snips) . $ellip; |
my $snippet = $ellip. join($ellip, @snips) . $ellip if (@snips); |
45 |
|
|
46 |
return $snippet; |
return $snippet; |
47 |
} |
} |