cginame(/home/jj/public_html/bin/htsp)
formtitle(Análise ortográfica com Jspell Navegante)
feedback(spellend)
f(spellit)
desc(spelldesc1)
init(jinit)
##
$ENV{PATH}="/bin:/usr/bin:/usr/local/bin";
use jspell;
my ($jsp,$jspen);
sub spellend{
h3("Palavras desconhecidas").
small(ul(li([map{"$_ - $estado{$_}"}
sort {$estado{$b} <=> $estado{$a}} keys %estado])))
}
sub spelldesc1{
h4("Breve descrição:").
small(ol(li([q{Mantém inalterado o que está em Português (e usa benevolência)},
m_eng(q{Altera a cor para verde nas em Inglês}),
m_error(q{Altera a cor para vermelho nas palavras desconhecidas}),
q{Funciona como proxy: segue as ligações, continuando a análise
ortográfica (não consegue seguir link escondidos em javascript...)},
q{Para finalizar: seleccionar o barco do topo da página para opter a lista
das palavras desconhecidas}])));
}
sub spellit{
my $a=shift;
$a =~ s{((http://|ftp://|www\.)[\w.?/~-]+)}{_savit($1)}ge;
$a =~ s{([\w.-]+\@[\w.?-]+)}{_savit($1)}ge;
$a =~ s{(\w+)((?:-\w+)*)}{if($2){ apc("$1$2")}
else { ap($1)}}ge;
_loadit($a);
}
sub apc{ # compound word analisys
my $p=shift;
if( ig($p) || $jsp->fea($p)){$p}
else{ $p =~ s{(\w+)}{ap($1)}ge; $p}
}
sub ap{ # simple word analysis
my $p=shift;
if( ig($p) || $jsp->fea($p)){$p}
elsif($p !~ /[^a-zA-Z]/ && $jspen->fea($p)){m_eng($p)}
else{ $estado{$p}++; m_error($p) }
}
my @i=qw{amp lt gt and man help html the my hotlist wishlist home faq jj uminho web };
my %ignore;
@ignore{@i}=@i;
sub ig{ $ignore{lc($_[0])} || lc($_[0]) =~ /\d/ || length($_[0]) == 1 }
sub jinit{
$jsp=jspell::new("port");
$jspen=jspell::new("eng");
}
##