Changeset 22823 for src

Show
Ignore:
Timestamp:
10/29/08 22:48:07 (2 months ago)
Author:
azawawi
Message:

[STD_syntax_highlight] redspans is now working... htmls are cool.
[STD_syntax_highlight] They're like --simple but way faster...

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/perl6/STD_syntax_highlight

    r22822 r22823  
    337337=cut 
    338338sub highlight_perl6_redspans { 
    339    # my ($orig,$events,$opt) = @_; 
    340339    my $str = ""; 
    341340    my %colors = (); 
     
    358357    close CSS_FILE; 
    359358 
    360     # slurp libraries and javascript to inline them 
     359    # slurp css inline it 
    361360    my $css = qq{<link href="../$CSS" rel="stylesheet" type="text/css">}; 
    362361    if(!$clean_html) { 
     
    386385        my $tree = "@{$loc[$i]}"; 
    387386        if($tree ne $last_tree) { 
    388             $str .= "\n'$buffer'\n$last_tree\n" if $buffer ne ''; 
     387            my $rule; 
     388            my $rule_to_color = 0; 
     389            $buffer = escape_html($buffer); 
     390            my @rules = (); 
     391            @rules = reverse(split / /,$last_tree) if $last_tree ne ''; 
     392            for $rule (@rules) { 
     393                if($colors{$rule} && $buffer ne '') { 
     394                    $rule_to_color = $rule; 
     395                    last; 
     396                } 
     397            } 
     398            if($rule_to_color) { 
     399                $str .= qq{<span class='$rule_to_color'>$buffer</span>}; 
     400            } else { 
     401                $str .= qq{$buffer}; 
     402            } 
    389403            $buffer = $c; 
    390404        } else {