[Tech] Indice dei file html

Leonardo Boselli leo@dicea.unifi.it
Gio 3 Ott 2002 12:21:19 CEST


A dire il vero se lo attacco tutto assiema sta in 4 righe ....
tuttavia per la bevita "intera" mi manca una cosa: 
all'inizio di ogni file c'è una riga ... che contien sicuramente 
qualcosa del tipo {%ury^x#@w1 ossia una sequenza sicuramente 
unica. Tale riga dovrebbe essere copiata integralmente nel file di 
output (contiene alcune informazioni importanti, già formattate), e 
solo dopo tale momento cominciare il parse dei nomi.
si può fare ? (non ho ben chiaro cosa faccia la funziona handler ...) 

On 3 Oct 2002, at 7:55, Franco Bagnoli wrote:

From:           	Franco Bagnoli <franco.bagnoli@unifi.it>
To:             	tech@firenze.linux.it
Subject:        	Re: [Tech] Indice dei file html
Send reply to:  	tech@firenze.linux.it
	<mailto:tech-request@firenze.linux.it?subject=subscribe>
	<mailto:tech-request@firenze.linux.it?subject=unsubscribe>
Date sent:      	Thu, 3 Oct 2002 07:55:17 +0200 (CEST)

> On Wed, 2 Oct 2002, Leonardo Boselli wrote:
> 
> > Vorrei sapere se esite uno script che dato in input un file html mi
> > prenda tutti i tag <Hn>BlaBla</Hn> in output mi dia <Hn><a href
> > "nome_delfile_in_cui_lo_ho_trovato#BlaBla">BlaBla</Hn>
> > 
> > (o meglio col comando 'indicizza file1.html file2.html file3.html >
> > index.html' abbreviabile, se la sequenza è giusta in 'indicizza
> > file?.html > index.html')
> > 
> [snip]
> > oppure possiamo fare un torneo di scripting ... chi fa quello più
> > carino vince una bevuta .... 
> 
> 
> Ecco il mio contributo
> 
> #!/usr/bin/perl
> 
> use HTML::Parser;
> 
> my $p = new HTML::Parser ();
> 
> my $out=0;
> my $filename="";
> my $string = "";
> 
> $p->handler(text, sub{$string .= shift if $out}, 'text');
> $p->handler(start, sub{$out = 1 if $_[0] =~ /H1/i},  'tagname');
> $p->handler(
>   end, 
>   sub{
>     if ($_[0] =~ /H1/i) {
>       $out = 0;
>       print "<H1><a href=\"$filename#$string\">$string</H1>\n"; 
>       $string="";
>     }
>   },
>   'tagname'
> );
> 
> while ($filename=shift){
>   $p->parse_file($filename);
> }
> 
> 
> anche se  non è nelle 4 righe standard delle competizioni. 
> Secondo me devi filtrare $string prima di stamparla come referenza
> (#string), e poi non ho capito che te ne fai se nel file sorgente non
> hai un <a name="..">, comunque aspetto la bevuta. 
> 
> 
> 
> -- 
> Franco Bagnoli (franchino) <franco.bagnoli@unifi.it>
> (bagnoli@dma.unifi.it) virtual location: Dipartimento di Energetica
> "S. Stecco" real location: Dip. Matematica Applicata "G. Sansone",
> Universita' Firenze, Via S. Marta, 3 I-50139 Firenze, Italy. Tel. +39
> 0554796422, fax: +39 055471787 GPG Key fingerprint = 169D 9EA5 8FD3
> 7EDA E43A  9830 255F BCEC 0D63 3728
> 
> _______________________________________________
> FLUG - Discussioni tecniche - tech@firenze.linux.it
> URL: http://lists.firenze.linux.it/mailman/listinfo/tech
> Archivio: http://lists.firenze.linux.it/pipermail/tech
> Ricerca nell'archivio: http://www.firenze.linux.it/search


--
Leonardo Boselli
Nucleo informatico e Telematico 
Dipartimento Ingegneria Civile
Universita` di Firenze
Via Santa Marta 3
I-50139 Firenze
+39 055-4796-431
+39 348-8605-348
fax 055-495-333



Maggiori informazioni sulla lista flug-tech