/usr/local/CPAN/PPresenter/PPresenter/Formatter/Markup.pm
# Copyright (C) 2000-2002, Free Software Foundation FSF.
package PPresenter::Formatter::Markup;
# The markup formatter looks a bit like HTML, but certainly is
# not fully compliant.
use strict;
use PPresenter::Formatter;
use base 'PPresenter::Formatter';
use Tk;
use PPresenter::Formatter::Markup_parser;
use PPresenter::Formatter::Markup_placer;
#use PPresenter::Formatter::Markup_html;
use constant ObjDefaults =>
{ -name => 'markup'
, -aliases => [ 'Markup', 'hypertext', 'html', 'default' ]
, logicals =>
{ BLOCKQUOTE => 'BQ'
, CITE => 'I'
, CODE => 'TT'
, EM => 'I'
, FONT => 'TEXT'
, LARGE => 'TEXT SIZE=+1'
, BIG => 'TEXT SIZE=+2'
, HUGE => 'TEXT SIZE=+3'
, SMALL => 'TEXT SIZE=-1'
, STRONG => 'TEXT SIZE=+1 B'
, TITLE => 'CENTER SIZE=+1'
, FOOTER => 'RIGHT I SIZE=-1'
}
, specials =>
{ amp => '&'
, lt => '<'
, gt => '>'
, quot => '"'
, quote => '"'
, nbsp => ' '
, dash => '-'
}
};
sub strip($$$)
{ my ($former, $show, $slide, $string) = @_;
$string =~ s/<[^>]*>//g;
$string;
}
sub addLogicals($@)
{ my $former = shift;
# The hash is replaced by a copy, and previous slides (if any)
# will refer to the unchanged definition.
$former->{logicals} = { %{$former->{logicals}}, @_ };
$former;
}
sub addLogical($@) {shift->addLogicals(@_)}
sub addSpecialCharacters($@)
{ my $former = shift;
# The hash is replaced by a copy, and previous slides (if any)
# will refer to the unchanged definition.
$former->{specials} = { %{$former->{specials}}, @_ };
$former;
}
sub addSpecialCharacter($@) {shift->addSpecialCharacters(@_)}
sub titleFormat($$)
{ my ($former, $view, $contents) = @_;
return "<TITLE>$contents"
}
sub footerFormat($$)
{ my ($former, $view, $contents) = @_;
return "<FOOTER>$contents"
}
#
# Export
#
sub toHTML($$$)
{ my ($former, $slide, $view, $contents) = @_;
my $parsed = $former->parse($slide, $view, $contents);
$former->html($parsed);
}
1;