1package Text::Trac::Table;
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
21	$c->htmllines('<table>');
22
23	$c->unshiftline;
24	while ( $c->hasnext and ( $c->nextline =~ $pattern ) ) {
25		my $l = $c->shiftline;
26		$l =~ s{ $self->{pattern} }{$1}xmsg;
27		$l = '<tr><td>' . join(
28			'</td><td>',
29			map {
30				$self->replace($_)    # parse inline nodes
31			} split( /\|\|/, $l )
32		) . '</td></tr>';
33
34		$c->htmllines($l);
35	}
36
37	$c->htmllines('</table>');
38
39	return;
40}
41
421;
43