Changeset 419

Show
Ignore:
Timestamp:
11/20/07 23:20:31 (9 months ago)
Author:
miya
Message:

Text::Trac: Apply a patch of https://rt.cpan.org/Ticket/Display.html?id=30816

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • library/perl/trunk/Text-Trac/Changes

    r370 r419  
    11Revision history for Text-Trac 
    22 
     30.08    Tue Nov 20 
     4        Apply a patch of https://rt.cpan.org/Ticket/Display.html?id=30816. 
     5        Thanks to Kazuyoshi KATO! 
     6         
    370.07    Sun Mar 25 
    48        Tiny fix for Ul.pm and Ol.pm 
  • library/perl/trunk/Text-Trac/Makefile.PL

    r332 r419  
    1010requires('Tie::IxHash'); 
    1111requires('List::MoreUtils'); 
     12requires('HTML::Entities'); 
    1213 
    1314no_index( package => 'TestMacro' ); 
  • library/perl/trunk/Text-Trac/lib/Text/Trac.pm

    r370 r419  
    66use Text::Trac::BlockNode; 
    77 
    8 our $VERSION = '0.07'; 
     8our $VERSION = '0.08'; 
    99 
    1010my %Defaults = ( 
     
    6262=head1 VERSION 
    6363 
    64 Version 0.07 
     64Version 0.08 
    6565 
    6666=head1 SYNOPSIS 
  • library/perl/trunk/Text-Trac/lib/Text/Trac/BlockNode.pm

    r332 r419  
    5555} 
    5656 
     57sub escape { 
     58    my ( $self, $l ) = @_; 
     59    return $self->inline_parser->escape($l); 
     60} 
     61 
    5762sub replace { 
    5863    my ( $self, $l ) = @_; 
  • library/perl/trunk/Text-Trac/lib/Text/Trac/Heading.pm

    r332 r419  
    1616 
    1717    my $id = $self->_strip( $2 ); 
    18     $l = qq(<h$level id="$id">$2</h$level>); 
     18    $l = qq(<h$level id="$id">) .  $self->replace($2) . qq(</h$level>); 
    1919 
    20     $l = $self->replace($l); 
    2120    $c->htmllines($l); 
    2221} 
  • library/perl/trunk/Text-Trac/lib/Text/Trac/InlineNode.pm

    r332 r419  
    66use UNIVERSAL::require; 
    77use Text::Trac::LinkResolver; 
     8use HTML::Entities qw(); 
    89 
    910tie my %token_table, 'Tie::IxHash'; 
     
    9596 
    9697sub parse { 
    97     my ( $self, $l ) = @_; 
    98     $l =~ s/$self->{rules}/$self->_replace($&, $`, $')/xmseg; 
    99     return $l; 
     98    my ( $self, $rest ) = @_; 
     99    my $html = ''; 
     100    while ($rest =~ /$self->{rules}/xms) { 
     101        $html .= $self->escape($`) . $self->_replace($&, $`, $'); 
     102        $rest = $'; 
     103    } 
     104    return $html . $self->escape($rest); 
     105
     106 
     107sub escape { 
     108    my ( $self, $s ) = @_; 
     109    return HTML::Entities::encode($s, '<>&"'); 
    100110} 
    101111 
  • library/perl/trunk/Text-Trac/lib/Text/Trac/Ol.pm

    r370 r419  
    5353    $c->ol({level => $level, space => $space }); 
    5454 
    55     $l =~ s{ $pattern }{<li>$3</li>}xmsg; 
     55    # parse inline nodes 
     56    $l =~ s{ $pattern }{'<li>' . $self->replace($3) . '</li>'}xmsge; 
    5657 
    5758    if ($c->hasnext and $c->nextline =~ $pattern){ 
     
    6667    } 
    6768 
    68     # parse inline nodes 
    69     $l = $self->replace($l); 
    7069    $c->htmllines($l); 
    7170 
  • library/perl/trunk/Text-Trac/lib/Text/Trac/Pre.pm

    r324 r419  
    2828        } 
    2929        else { 
    30             $c->htmllines($l); 
     30            $c->htmllines($self->escape($l)); 
    3131        } 
    3232    } 
  • library/perl/trunk/Text-Trac/lib/Text/Trac/Table.pm

    r332 r419  
    2222        my $l = $c->shiftline; 
    2323        $l =~ s{ $self->{pattern} }{$1}xmsg; 
    24         $l = "<tr><td>" . join( "</td><td>", split(/\|\|/, $l) ) . "</td></tr>"; 
     24        $l = "<tr><td>" . join( "</td><td>", 
     25                                map { 
     26                                  $self->replace($_) # parse inline nodes 
     27                                } split(/\|\|/, $l) ) . "</td></tr>"; 
    2528 
    26         # parse inline nodes 
    27         $l = $self->replace($l); 
    2829        $c->htmllines($l); 
    2930    } 
  • library/perl/trunk/Text-Trac/lib/Text/Trac/Ul.pm

    r370 r419  
    3434    $c->ul({ level => $level, space => $space }); 
    3535 
    36     $l =~ s{ $pattern }{<li>$2</li>}xmsg; 
     36    # parse inline nodes 
     37    $l =~ s{ $pattern }{'<li>' . $self->replace($2) . '</li>'}xmsge; 
    3738 
    3839    if ($c->hasnext and $c->nextline =~ /$pattern/){ 
     
    4849 
    4950    # parse inline nodes 
    50     $l = $self->replace($l); 
    5151    $c->htmllines($l); 
    5252 
  • library/perl/trunk/Text-Trac/t/01-text-trac.t

    r332 r419  
    338338[unknown:target label] 
    339339</p> 
     340 
     341### escape HTML meta-characters 
     342--- input 
     343foo <bar> baz. 
     344foo '''bar''' baz. 
     345 
     346 * foo <bar> bar. 
     347 * foo '''bar''' baz. 
     348 
     349 1. foo <bar> bar. 
     350 1. foo '''bar''' baz. 
     351 
     352||foo||<bar>||'''baz'''|| 
     353 
     354{{{ 
     355foo <bar> baz. 
     356foo '''bar''' baz. 
     357}}} 
     358--- expected 
     359<p> 
     360foo &lt;bar&gt; baz. 
     361foo <strong>bar</strong> baz. 
     362</p> 
     363<ul><li>foo &lt;bar&gt; bar.</li> 
     364<li>foo <strong>bar</strong> baz.</li></ul> 
     365<ol start="1"><li>foo &lt;bar&gt; bar.</li> 
     366<li>foo <strong>bar</strong> baz.</li></ol> 
     367<table> 
     368<tr><td>foo</td><td>&lt;bar&gt;</td><td><strong>baz</strong></td></tr> 
     369</table> 
     370<pre class="wiki"> 
     371foo &lt;bar&gt; baz. 
     372foo '''bar''' baz. 
     373</pre>