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