# Returns a list of lines.
- my ( $block, $triple, $line, @lines );
+ my ( $block, $triple, $line, @lines, $i );
foreach $block ( @{ $wiki } )
{
{
map { push @lines, " $_->{ 'TEXT' }" } @{ $block };
}
+ elsif ( $block->[ 0 ]->{ 'FORMAT' } eq "itemize" )
+ {
+ for ( $i = 0; $i < @{ $block }; $i++ ) {
+ push @lines, " * $block->[ $i ]->{ 'TEXT' }";
+ }
+ }
+ elsif ( $block->[ 0 ]->{ 'FORMAT' } eq "enumerate" )
+ {
+ for ( $i = 0; $i < @{ $block }; $i++ ) {
+ push @lines, " " . ( $i + 1 ) . ". $block->[ $i ]->{ 'TEXT' }";
+ }
+ }
elsif ( $block->[ 0 ]->{ 'FORMAT' } eq "paragraph" )
{
foreach $triple ( @{ $block } )
{
$line = $triple->{ 'TEXT' };
+ $line =~ s/!(\w)/$1/g;
$line =~ s/^\s*//;
$line =~ s/\s*$//;
$line =~ s/\s+/ /g;
$line =~ tr/`//d;
- $line =~ s/\[([^\]]+?)\]/$1/g;
- $line =~ s/\*([^\*]+?)\*/&text_bold($1)/ge;
- $line =~ s/_([^_]+?)_/&text_underline($1)/ge;
+ $line =~ s/\[([^\]]+?)\]/&text_underline($1)/ge;
+ $line =~ s/\*(\w+)\*/&text_bold($1)/ge if $line =~ /(^| )\*\w+\*( |$)/;
+ $line =~ s/_(\w+)_/&text_underline($1)/ge if $line =~ /(^| )_\w+_( |$)/;
- push @lines, $_ foreach &Maasha::Common::wrap_line( $line, 80 );
+ push @lines, $_ foreach Maasha::Common::wrap_line( $line, 80 );
}
}
+ elsif ( $block->[ 0 ]->{ 'FORMAT' } eq "whitespace" )
+ {
+ push @lines, "";
+ }
}
return wantarray ? @lines : \@lines;
# Returns data structure.
- my ( $fh, @lines, $i, $c, $section, @block, @output );
+ my ( $fh, @lines, $i, $c, $section, $paragraph, @block, @output );
- $fh = &Maasha::Common::read_open( $file );
+ $fh = Maasha::Common::read_open( $file );
@lines = <$fh>;
$c++;
}
+
+ $c++;
}
- else
+ elsif ( $lines[ $i ] =~ /^\s{1,}\*\s*.+/ )
{
+ $c = $i;
+
+ while ( $lines[ $c ] =~ /^\s{1,}\*\s*(.+)/ )
+ {
+ push @block, {
+ TEXT => $1,
+ SECTION => $section,
+ FORMAT => "itemize"
+ };
+
+ $c++;
+ }
+ }
+ elsif ( $lines[ $i ] =~ /^\s{1,}#\s*.+/ )
+ {
+ $c = $i;
+
+ while ( $lines[ $c ] =~ /^\s{1,}#\s*(.+)/ )
+ {
+ push @block, {
+ TEXT => $1,
+ SECTION => $section,
+ FORMAT => "enumerate"
+ };
+
+ $c++;
+ }
+ }
+ elsif ( $lines[ $i ] !~ /^\s*$/ )
+ {
+ undef $paragraph;
+
+ $c = $i;
+
+ while ( $lines[ $c ] !~ /^\s*$/ )
+ {
+ $paragraph .= " $lines[ $c ]";
+
+ $c++;
+ }
+
push @block, {
- TEXT => $lines[ $i ],
+ TEXT => $paragraph,
SECTION => $section,
FORMAT => "paragraph",
};
}
+ elsif ( $lines[ $i ] =~ /^\s*$/ )
+ {
+ push @block, {
+ TEXT => "",
+ SECTION => $section,
+ FORMAT => "whitespace",
+ };
+ }
push @output, [ @block ], if @block;
if ( $c > $i ) {
- $i = $c + 1;
+ $i = $c;
} else {
$i++;
}
my ( $txt,
) = @_;
- return colored ( $txt, "bold white" );
+ return colored ( $txt, "bold" );
}