1package Text::Trac::Pre; 2 3use strict; 4use warnings; 5use base qw(Text::Trac::BlockNode); 6 7our $VERSION = '0.24'; 8 9sub init { 10 my $self = shift; 11 $self->pattern(qr/^\{\{\{$/xms); 12 return $self; 13} 14 15sub parse { 16 my ( $self, $l ) = @_; 17 my $c = $self->{context}; 18 my $pattern = $self->pattern; 19 $l =~ /$pattern/ or return $l; 20 my $match = $1; 21 my $class = $c->{class} ? q{ class="wiki"} : ''; 22 23 if ( $l =~ /^\{\{\{$/ ) { 24 $c->htmllines(qq{<pre$class>}); 25 } 26 27 while ( $c->hasnext ) { 28 my $l = $c->shiftline; 29 if ( $l =~ /^\}\}\}$/ ) { 30 $c->htmllines('</pre>'); 31 last; 32 } 33 else { 34 $c->htmllines( $self->escape($l) ); 35 } 36 } 37 38 return; 39} 40 411; 42