txt2html.pl

#!/usr/bin/perl
use locale; #caracteres accentues
#On lance comme cela: perl txt2html.pl
#On obtient: fichier.txt.html
print "Bienvenu(e) au programme qui permet \n d'afficher les fichiers TXT en HTML.\n";
print "Nom du fichier de travail, de preference un .txt au format UNIX: \n";
my $file=<STDIN>;
chomp($file);
print "S'agit-il de la rubrique livres (tape: l) ou culture (tape: c) \n
ou ce n'est pas important (tape: g)? \n";
my $rubrique=<STDIN>;
chomp($rubrique);
open(FILEIN, $file);
open(FILEOUT, ">$file.html");
my $DUMPFULL="";
if (($rubrique=~/l/) || ($rubrique=~/c/) || ($rubrique=~/g/))
{
while(my $recup=<FILEIN>)
{
#1. transcodage
####Les métacaractères####
$recup=~s/\>/&gt;/g;
$recup=~s/\</&lt;/g;
$recup=~s/\"/&quot;/g;
####Les Accents####
$recup=~s/à/&agrave;/g;
$recup=~s/á/&aacute;/g;
$recup=~s/â/&acirc;/g;
$recup=~s/ã/&atilde;/g;
$recup=~s/ä/&auml;/g;
$recup=~s/å/&aring;/g;
$recup=~s/æ/&aelig;/g;
$recup=~s/è/&egrave;/g;
$recup=~s/é/&eacute;/g;
$recup=~s/ê/&ecirc;/g;
$recup=~s/ë/&euml;/g;
$recup=~s/è/&egrave;/g;
$recup=~s/é/&eacute;/g;
$recup=~s/ê/&ecirc;/g;
$recup=~s/ë/&euml;/g;
$recup=~s/ì/&igrave;/g;
$recup=~s/í/&iacute;/g;
$recup=~s/î/&icirc;/g;
$recup=~s/ï/&iuml;/g;
$recup=~s/ò/&ograve;/g;
$recup=~s/ó/&oacute;/g;
$recup=~s/ô/&ocirc;/g;
$recup=~s/õ/&otilde;/g;
$recup=~s/ö/&ouml;/g;
$recup=~s/ù/&ugrave;/g;
$recup=~s/ú/&uacute;/g;
$recup=~s/û/&ucirc;/g;
$recup=~s/ü/&uuml;/g;
$recup=~s/ç/&ccedil;/g;
####Les fichiers de type texte####
##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à
#2. Memorisation dans DUMPFULL
$DUMPFULL.=$recup;
};
};
if ($rubrique=~/l/)
{
#3. En-tete pour livres
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=\"\#3F0F11\" 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";
}
elsif ($rubrique=~/c/)
{
#3. En-tete pour culture
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=\"\#3D5A33\" 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";
}
else
{
#3. En-tete pour les autres fichiers de ma page web
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);