perl2html.pl
#!/usr/bin/perl use locale; #caracteres accentues #On lance comme cela: perl perl2html.pl #On obtient: fichier.pl.html print "Bienvenu(e) au programme qui permet \n d'afficher les programmes perl en HTML.\n"; print "Nom du fichier de travail, de preference un .pl \n au format UNIX: \n"; my $file=<STDIN>; chomp($file); open(FILEIN, $file); open(FILEOUT, ">$file.html"); my $DUMPFULL=""; while(my $recup=<FILEIN>) { #1. transcodage ##Les non métacaractères## $recup=~s/&/&/g; ####Les métacaractères#### $recup=~s/\>/>/g; $recup=~s/\</</g; $recup=~s/\"/"/g; ####Les Accents#### $recup=~s/à/à/g; $recup=~s/á/á/g; $recup=~s/â/â/g; $recup=~s/ã/ã/g; $recup=~s/ä/ä/g; $recup=~s/å/å/g; $recup=~s/æ/æ/g; $recup=~s/è/è/g; $recup=~s/é/é/g; $recup=~s/ê/ê/g; $recup=~s/ë/ë/g; $recup=~s/è/è/g; $recup=~s/é/é/g; $recup=~s/ê/ê/g; $recup=~s/ë/ë/g; $recup=~s/ì/ì/g; $recup=~s/í/í/g; $recup=~s/î/î/g; $recup=~s/ï/ï/g; $recup=~s/ò/ò/g; $recup=~s/ó/ó/g; $recup=~s/ô/ô/g; $recup=~s/õ/õ/g; $recup=~s/ö/ö/g; $recup=~s/ù/ù/g; $recup=~s/ú/ú/g; $recup=~s/û/û/g; $recup=~s/ü/ü/g; $recup=~s/ç/ç/g; $recup=~s/¯/¯/g; $recup=~s/\/<img src="\.\/IMAGES\/ETX.jpg">/g; $recup=~s/\/<img src="\.\/IMAGES\/DC1.jpg">/g; ####Les fichiers de type programme en Perl#### ##Les paragraphes et les line breaks## $recup=~s/(\s)*\n/\n/g; #supprime les espaces avant le retour à la ligne $recup=~s/^\n/<p>\n/g; #met des paragraphes dans tous les sauts de ligne if ($recup=~/[^<p>]\n/g) { $recup=~s/\n/<\/br>\n/g; };# met des br en fin de ligne lorsque la balise <p> n'est pas là ##Les commentaires## $recup=~s/\#\!\/usr\/bin\/perl/<font color="green">\#\!\/usr\/bin\/perl<\/font>/g; # met du vert dans la déclaration de type de fichier $recup=~s/\#\!\/bin\/bash/<font color="red">\#\!\/bin\/bash<\/font>/g; $recup=~s/#caracteres accentues/<font color="green">\#caracteres accentues<\/font>/g; # met du vert dans la phrase caracteres accentues if ($recup=~/^\#/g) { $recup=~s/$recup/<font color="green">$recup<\/font>/g; $recup=~s/<\/br>\n<\/font>/<\/font><\/br>\n/g; #Résidus }; # met du vert à chaque commentaire en début de ligne unless(($recup=~/^<font color="green">/)||($recup=~/<font color="green">/)) { if ($recup=~/[^\\]\#/g){ $recup=~s/\#/<font color="green">\#<\/font>/g; }; # on ne peut pas faire mieux car les espaces et les barres obliques sont considérés comme des espaces<\/font>/g };$recup=~s/<font color="green">\#<\/font><font color="green">\#<\/font>/<font color="green">\#\#<\/font>/g; $recup=~s/\#<\/font><font color="green">\#/\#\#/g;
##Les variables par ordre alphabétique##
$recup=~s/\$treetagger/<font color="orange">\$treetagger<\/font>/g; $recup=~s/\$tete/<font color="orange">\$tete<\/font>/g; $recup=~s/\$sequence/<font color="orange">\$sequence<\/font>/g; $recup=~s/\$rubrique/<font color="orange">\$rubrique<\/font>/g; $recup=~s/\$reponse/<font color="orange">\$reponse<\/font>/g; unless ($recup=~/<font color="orange">\$rep<\/font>/) { $recup=~s/\$rep/<font color="orange">\$rep<\/font>/g; };
$recup=~s/\$recupxsl/<font color="orange">\$recupxsl<\/font>/g; unless($recup=~/<font color="orange">\$recup<\/font>/){ $recup=~s/\$recup/<font color="orange">\$recup<\/font>/g; }; $recup=~s/\$racine/<font color="orange">\$racine<\/font>/g; $recup=~s/\$queue/<font color="orange">\$queue<\/font>/g; $recup=~s/\$patron/<font color="orange">\$patron<\/font>/g; $recup=~s/\$path/<font color="orange">\$path<\/font>/g; unless ($recup=~/<font color="orange">\$p/){ $recup=~s/\$p/<font color="orange">\$p<\/font>/g; }; $recup=~s/\$output/<font color="orange">\$output<\/font>/g; $recup=~s/\$num/<font color="orange">\$num<\/font>/g; $recup=~s/\$name/<font color="orange">\$name<\/font>/g; $recup=~s/\$nextligne/<font color="orange">\$nextligne<\/font>/g; $recup=~s/\$longueur/<font color="orange">\$longueur<\/font>/g; $recup=~s/\$Ligne/<font color="orange">\$Ligne<\/font>/g; $recup=~s/\$ligne/<font color="orange">\$ligne<\/font>/g; unless ($recup=~/<font color="orange">\$k/){ $recup=~s/\$k/<font color="orange">\$k<\/font>/g; }; unless ($recup=~/<font color="orange">\$j/){ $recup=~s/\$j/<font color="orange">\$j<\/font>/g; }; unless ($recup=~/<font color="orange">\$i/){ $recup=~s/\$i/<font color="orange">\$i<\/font>/g; }; $recup=~s/\$forme/<font color="orange">\$forme<\/font>/g; $recup=~s/\$FichierSortie/<font color="orange">\$FichierSortie<\/font>/g; $recup=~s/\$FichierEntree/<font color="orange">\$FichierEntree<\/font>/g; $recup=~s/\$file3p3/<font color="orange">\$file3p3<\/font>/g; $recup=~s/\$file3p2/<font color="orange">\$file3p2<\/font>/g; $recup=~s/\$file3p1/<font color="orange">\$file3p1<\/font>/g; $recup=~s/\$file2p3/<font color="orange">\$file2p3<\/font>/g; $recup=~s/\$file2p2/<font color="orange">\$file2p2<\/font>/g; $recup=~s/\$file2p1/<font color="orange">\$file2p1<\/font>/g; $recup=~s/\$file1p3/<font color="orange">\$file1p3<\/font>/g; $recup=~s/\$file1p2/<font color="orange">\$file1p2<\/font>/g; $recup=~s/\$file1p1/<font color="orange">\$file1p1<\/font>/g; unless($recup=~/<font color="orange">\$file/) { $recup=~s/\$file/<font color="orange">\$file<\/font>/g; }; $recup=~s/\$DUMPFULLtxt/<font color="orange">\$DUMPFULLtxt<\/font>/g; unless($recup=~/<font color="orange">\$DUMPFULL/) { $recup=~s/\$DUMPFULL/<font color="orange">\$DUMPFULL<\/font>/g; }; $recup=~s/\$deux/<font color="orange">\$deux<\/font>/g; $recup=~s/\$decoupeligne/<font color="orange">\$decoupeligne<\/font>/g; unless($recup=~/<font color="orange">\$d/) { $recup=~s/\$d/<font color="orange">\$d<\/font>/g; }; $recup=~s/\$compare/<font color="orange">\$compare<\/font>/g; $recup=~s/\$ChaineUsage/<font color="orange">\$ChaineUsage<\/font>/g; unless($recup=~/<font color="orange">\$c/) { $recup=~s/\$c/<font color="orange">\$c<\/font>/g; }; unless($recup=~/<font color="orange">\$b/) { $recup=~s/\$b/<font color="orange">\$b<\/font>/g; }; $recup=~s/\$ARGV/<font color="pink">\$ARGV<\/font>/g; $recup=~s/\$avant/<font color="orange">\$avant<\/font>/g; $recup=~s/\$apres/<font color="orange">\$apres<\/font>/g; unless($recup=~/<font color="orange">\$a/) { $recup=~s/\$a/<font color="orange">\$a<\/font>/g; }; $recup=~s/\$4/<font color="orange">\$4<\/font>/g; $recup=~s/\$3/<font color="orange">\$3<\/font>/g; $recup=~s/\$2/<font color="orange">\$2<\/font>/g; $recup=~s/\$1/<font color="orange">\$1<\/font>/g; unless (($recup=~/<font color="orange">\$/)||($recup=~/<font color="pink">\$/)){ $recup=~s/\$/<font color="orange">\$<\/font>/g; };
##Les numéros## $recup=~s/<\/font>0/0<\/font>/g; $recup=~s/<\/font>1/1<\/font>/g; $recup=~s/<\/font>2/2<\/font>/g; $recup=~s/<\/font>3/3<\/font>/g; $recup=~s/<\/font>4/4<\/font>/g; $recup=~s/<\/font>5/5<\/font>/g; $recup=~s/<\/font>6/6<\/font>/g; $recup=~s/<\/font>7/7<\/font>/g; $recup=~s/<\/font>8/8<\/font>/g; $recup=~s/<\/font>9/9<\/font>/g; $recup=~s/<\/font>0/0<\/font>/g; $recup=~s/<\/font>1/1<\/font>/g; $recup=~s/<\/font>2/2<\/font>/g; $recup=~s/<\/font>3/3<\/font>/g; $recup=~s/<\/font>4/4<\/font>/g; $recup=~s/<\/font>5/5<\/font>/g; $recup=~s/<\/font>6/6<\/font>/g; $recup=~s/<\/font>7/7<\/font>/g; $recup=~s/<\/font>8/8<\/font>/g; $recup=~s/<\/font>9/9<\/font>/g; $recup=~s/<\/font>0/0<\/font>/g; $recup=~s/<\/font>1/1<\/font>/g; $recup=~s/<\/font>2/2<\/font>/g; $recup=~s/<\/font>3/3<\/font>/g; $recup=~s/<\/font>4/4<\/font>/g; $recup=~s/<\/font>5/5<\/font>/g; $recup=~s/<\/font>6/6<\/font>/g; $recup=~s/<\/font>7/7<\/font>/g; $recup=~s/<\/font>8/8<\/font>/g; $recup=~s/<\/font>9/9<\/font>/g; $recup=~s/<\/font>0/0<\/font>/g; $recup=~s/<\/font>1/1<\/font>/g; $recup=~s/<\/font>2/2<\/font>/g; $recup=~s/<\/font>3/3<\/font>/g; $recup=~s/<\/font>4/4<\/font>/g; $recup=~s/<\/font>5/5<\/font>/g; $recup=~s/<\/font>6/6<\/font>/g; $recup=~s/<\/font>7/7<\/font>/g; $recup=~s/<\/font>8/8<\/font>/g; $recup=~s/<\/font>9/9<\/font>/g; ##Les commandes Perl par ordre alphabétique## $recup=~s/\while/<font color="blue">\while<\/font>/g; $recup=~s/use locale/<font color="blue">use locale<\/font>/g; $recup=~s/unless/<font color="blue">unless<\/font>/g; $recup=~s/sub /<font color="blue">sub <\/font>/g; $recup=~s/system/<font color="blue">system<\/font>/g; $recup=~s/readdir/<font color="blue">readdir<\/font>/g; $recup=~s/print/<font color="blue">print<\/font>/g; $recup=~s/\opendir/<font color="blue">\opendir<\/font>/g; $recup=~s/\open/<font color="blue">\open<\/font>/g; unless($recup=~/<font color="orange">\$next/) { $recup=~s/next/<font color="blue">next<\/font>/g; }; $recup=~s/\my/<font color="blue">\my<\/font>/g; if (($recup=~/[^a-z]\if/)||($recup=~/[^A-Z]\if/)){ $recup=~s/\if /<font color="blue">\if <\/font>/g; }; #on inclut l'espace avant la condition en n'excluant que les caractères alphabétiques $recup=~s/^\if/<font color="blue">\if<\/font>/g; # la condition en début de ligne n'a pas été prise en compte $recup=~s/foreach/<font color="blue">foreach<\/font>/g; unless($recup=~/exit.txt/){ $recup=~s/exit/<font color="blue">exit<\/font>/g; }; $recup=~s/elsif/<font color="blue">elsif<\/font>/g; $recup=~s/else/<font color="blue">else<\/font>/g; $recup=~s/die/<font color="blue">die<\/font>/g; $recup=~s/chomp/<font color="blue">chomp<\/font>/g; $recup=~s/closedir/<font color="blue">closedir<\/font>/g; $recup=~s/close/<font color="blue">close<\/font>/g; $recup=~s/\{/<font color="darkred">\{<\/font>/g; $recup=~s/\}/<font color="darkred">\}<\/font>/g; $recup=~s/\@token/<font color="pink">\@token<\/font>/g; $recup=~s/\@pos/<font color="pink">\@pos<\/font>/g; $recup=~s/\@lignes/<font color="pink">\@lignes<\/font>/g; $recup=~s/\@lemme/<font color="pink">\@lemme<\/font>/g; $recup=~s/\@files/<font color="pink">\@files<\/font>/g; $recup=~s/\@decoupeligne/<font color="pink">\@decoupeligne<\/font>/g; $recup=~s/\@ARGV/<font color="pink">\@ARGV<\/font>/g; $recup=~s/\@_/<font color="pink">\@_<\/font>/g; unless ($recup=~/<font color="pink">\@/){ $recup=~s/\@/<font color="pink">\@<\/font>/g; }; $recup=~s/\(/<font color="blue">\(<\/font>/g; $recup=~s/\)/<font color="blue">\)<\/font>/g;
#Les commandes Bash par ordre alphabétique $recup=~s/sed /<font color="#D24513">sed <\/font>/g; $recup=~s/rm /<font color="#D24513">rm <\/font>/g; $recup=~s/rename /<font color="#D24513">rename <\/font>/g; $recup=~s/ls /<font color="#D24513">ls <\/font>/g; $recup=~s/grep /<font color="#D24513">grep <\/font>/g; $recup=~s/echo /<font color="#D24513">echo <\/font>/g; $recup=~s/cp /<font color="#D24513">cp <\/font>/g; $recup=~s/cat /<font color="#D24513">cat <\/font>/g; #Résidus $recup=~s/par recup\n/par recup<\/br>\n/g; if (($recup=~/^\#perl/)||($recup=~/^\#Dans/)) { $recup=~s/\#/<font color="green">\#<\/font>/g; }; $recup=~s/adject<font color="blue">if <\/font>/adjectif /g; $recup=~s/els<font color="blue">if <\/font>/<font color="blue">elsif <\/font>/g; #2. Memorisation dans DUMPFULL $DUMPFULL.=$recup; } #3. En-tete print FILEOUT "<html>\n <head>\n <title>Les rubriques Culture et Livres sur lemonde.fr<\/title>\n <meta http-equiv=\"content-type\" content=\"text\/html; charset=windows-1250\">\n <\/head>\n <body bgcolor=\"\#5EC3FB\" text=\"\#12162E\" link=\"\#B40002\" alink=\"\#0C340C\" vlink=\"\#67284C\">\n <body background =\".\/IMAGES\/rss-news.jpg\">\n <blockquote>\n \n <h2><font color=\"\#390917\">",$file,"<\/font><\/h2>\n";
#4. Remplacement des entites print FILEOUT $DUMPFULL; # Pied de page print FILEOUT "<p><a href=\"\.\/index.htm\"><img src=\"\.\/IMAGES\/index\.gif\"><\/a><\/blockquote>\n<\/body>\n<\/html>\n"; print "\nLe fichier bien accentue se nomme $file.html"; #---------------------------------------------- close(FILEIN); close(FILEOUT);