De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 27 de Março de 2001
A home page da Dicas-L é feita de forma automática. Os textos são escritos em um formato com algumas marcações, que geram a mensagem que é enviada aos assinantes, a página HTML que fica no site, atualização do índice, página principal, etc.
Dentre as funções que eu uso para a publicação na Web estão a conversão de URLs. No texto original, onde eu tenho
http://www.unicamp.br
eu preciso que, na página HTML, fique assim:
<a href="http://www.unicamp.br>http://www.unicamp.br</a>
Para isto eu uso o script que se segue, que me foi fornecido pelo Marcelo Malheiros.
Depois eu conto com mais detalhes como a Dicas-L foi automatizada. É meio rudimentar mas funciona bem :-)
#!/usr/local/bin/perl
# urlify -- tchrist@perl.com
require 5.002; # well, or 5.000 if you see below
$urls = '(' . join ('|', qw{
http
telnet
gopher
file
wais
ftp
} )
. ')';
$ltrs = '\w';
$gunk = '/#~:.?+=&%@!\-';=
$punc = '.:?\-';
$any = "${ltrs}${gunk}${punc}";
while (<>) {
## use this if early-ish perl5 (pre 5.002)
## s{\b(${urls}:[$any]+?)(?=[$punc]*[^$any]|\Z)}{<A HREF="$1">$1</A>}goi;
## otherwise use this -- it just has 5.002ish comments
s{
\b # start at word boundary
( # begin $1 {
$urls : # need resource and a colon
[$any] +? # followed by on or more
# of any valid character, but
# be conservative and take only
# what you need to....
) # end $1 }
(?= # look-ahead non-consumptive assertion
[$punc]* # either 0 or more puntuation
[^$any] # followed by a non-url char
| # or else
$ # then end of the string
)
}{<A HREF="$1">$1</A>}igox;
print;
}