Déménagement, Mise à jour, Refonte du Site
alain Adelmar
J'ai décidé de remanier mon site pour plusieurs
raisons, dont les plus impératives étant que plusieurs de mes documents
étaient devenus totalement obsolètes, plus de structure, plein de liens
cassés et aucun moyen d'y remédier. Il y a plusieurs années maintenant
que j'ai commencé et les différents changements de distribution et
plusieurs crash system, mon mis le bazar, dans le peut d'organisation
que j'avais. La tâche de refondre, réorganiser le site me donnai le
vertige.
Mais il en ai rien, l'informatique est là pour nous aider. Je
vais développer ma tactique sur cette page.
La réorganisation pour moi est totale, je m'explique voilà mes
problèmes au départ et les solutions que j'ai utilisées:
Ce qui posé problèmes:
Encodage disparate ----------- iconv ou lat2utf8.pl
et morrowind.pl passe le site à la moulinette en
2-3min
Liens cassées -------------------- vv2l.pl que j'ai
terminé la semaine dernière
Mise en page disparate ----- css ou le langage qui
relooke tout le site (30lignes/un fichier) style.css
éviter que cela ré-arrive ---- la versification rcs
et tout n'est plus pareil
encodage aléatoire et fin de lignes héritées de
Windows avec /r
(retour chariots) et /n
(fin de ligne)
reconstruction des liens coupés en fin de
ligne (beaucoup de navigateurs coupent les liens en fin de ligne
rendant toute manipulation difficile)
Liens cassées et trop de pages pour le faire
à la main
Mise en page sans structure donc pas pratique à
modifier
Faire en sorte que tout soit organisé et sous contrôle
Si votre tache débute par la recherche de toute
les versions de toute les pages que vous avez publier et que vous ne
vous rappelez plus ou lisez ici
Plusieurs solutions à ce problème:
Soit on utilise iconv et un logiciel comme kwrite (est il est très bon
pour remplacer les \r\n par \n), mais ça demandera
facilement 5min par pages, minimum ou
on ce fait un petit script qui ce fait les deux et pour tout un
répertoire (et qui le fera en moins d'une minute) le temps de
l'écrire depuis dor.pl (5min max).
Développons:
dor.pl ouvre
un répertoire stocke tout les fichiers html ou dérivés par
if ($file =~ /\.{1}s?h?x?t?m{1}l?$/i)
et donc une foi stocké dans @files
foreach $file(@files) {
system "iconv -f latin1 -t utf8"; # pour l'encodage
open F, "$file" or die "Ouverture $file impossible $!";
@contenu = <F>;
close F || die "reflute impossibole to shuter ce ptain de file $file $!";
while (@contenu) {
s/\r\n$/\n/g;
}
}
On pousse tout dans fileout qui est prévu dans dor et le tour est jouer
( j'ai écris ce script et l'ai appelé morrowind
"mort au Windows"
terminaisons). J'en ai même fait un module morrowind.pm.
Reconstruction des liens rompus en fin
de ligne
Mon script rebalise_html reformate
les pages afin de faire entrer la totalité du lien dans la ligne ou
l'envoi dans la ligne suivante pour qu'il reste entier.
script ici et la
(vous pouvez donner le nombre de carractères que vous souhaitez avoir
au max avant d'envoyer le lien sur une autre ligne en argument)
Lire la doc et le fichier pod inclut. Peux s'appliquer à un fichier ou
à un texte.
Traitement des Liens cassés, (mauvais path,
extension incorrectes, liens rompus, faute d'orthographe sur le nom de
fichier, etc...
Un seul remède à ça, vv2l.pl ce script j'ai mis le temps mais il est
effectif maintenant, il marche.
Il fonctionne comme ceci:
- Il prend le nom du répertoire que vous lui donné en arguments, il
l'ouvre et ouvre tout les fichiers en lecture seule (pour rien toucher).
- Il fait des copies de chaque fichiers et stock en même temps
toutes les ancres et liens possible (tout les nom de fichier) dans une
table de hachage.
- Puis il ouvre le répertoire temporaire ou il à tout stocké
(/newsite) et contrôle donc liens par liens, ligne / ligne,
fichier/fichier tout les liens.
- Il les compare avec sa table de hachage et quand il n'y a pas de
correspondance. Décortique les lien en: $path, $rootfile, $ext, $ancre
- Répare ce qui peut être réparé. exemple: dégage les paths inutile
style (/home/alain/pub/aadelmar/tafed.html#_top) en (tafed.html#_top)
- Quand il n'arrive vraiment pas à réparer tout seul il demande à
l'utilisateur de faire pointer vers une liste de possibilité (chiffrer)
ou d'entrer directement le lien.
- Il fait des logs de toutes les modification apportés.
Mise en Page structurée avec css
La mise en page avec css est un jeux d'enfant, le langage css reprend
les balises du html mais leur donnent une possibilité de formatage.
C'est à dire que l'on peut définir à l'avance tout ce qui figurera dans
vos pages. Les polices de caractères, leurs tailles, leurs couleurs,
tout quoi ... (par défaut et en particulier suivant après quelle
balises elle ce trouve. En plus il y a possibilité d'employer des
classes, autant que vous désirez.
Il suffit de créer un fichier avec l'extension ".css" et de définir
quelques balises de le sauver comme (mon_style.css) par exemple, dans
votre répertoire de publication ou ailleurs en le définissant sur une
seule ligne dans tous vos fichier .html, comme:
<link href="mon_style.css" type="text/css" rel="stylesheet">
et vous aurai un look à vous sur toutes vos pages.
Exemple de définition pour mon_style.css: (comme ces pages)
body {
color: #666;
background-color: #fff;
font-family: Verdana, "Lucida Sans", Arial, Helvetica, sans-serif ;
font-size: 100%;
width: 78em;
margin: 10px 10px 10px 40px;
}
body lance la
base de vos pages avec une couleur, un style de police, une taille, une
largeur, une marge et des classe que vous inventez comme la classe
"feuilletbleu" comme la ligne au dessous qui défini cette ligne avec
son cadre. Et tout cela en la définissant comme <p
class="feuilletbleu">blabla</p>
.feuilletbleu { border: 1px solid rgb(250,0,255); background:#C8F9FC; font-size: 100%;padding: 6px 6px 6px 6px;}
Il est aisé de donner un look à ses pages car on à tendance à ce
servir toujours des mêmes balises en HTML.
Faire en sorte que tous soit sous contrôle
Pour cela rcs fera l'affaire. Installer rcs si ca n'est pas fait,
ou si vous êtes sur Windows, car il est installé par défaut sur Linux.
sinon:
yum install rcs
cd /home
mkdir RCS
cd RCS
puis entrer tout vos fichier.html dans rcs en tapant:
ci index.html
(il va vous demandez de mettre quelques mots pour dire ce que
c'est)
puis quand vous voulez extraire le fichier pour soit le modifier soit
le publier, faite:
co index.html
(co pour check out et ci pour check in) voilà chaque fois que vous
modifierai votre fichier et que vous le re-entrer la version sera
augmenté.
Pour plus de détail voir man rcs, man ci, man co et man cvs (maintenant
il a était traduit en français).
Récapitulation:
Si vous êtes comme moi qui avait un peu de pages partout autant dans
les répertoire Linux que Windows pour centraliser tout et voir ou sont
les dernières moutures de vos pages, commencez donc par un find (en
choisissant un bien spécial à vous un qui ne peut être confondu avec un
autre):
find / -type f -name exo_commente.html -print > ls_exo_pub.log
qui va chercher partout dans la bécane toutes les instances de
exo_commenté.html, autant sur Linux que sur windows et va vous mettre
ce qu'il a trouver dans un fichier appellé ls_exo_pub.log du répertoire
courant. Puis faite
dod.pl -blo ls_exo_pub.log ls_pub_royal.log
qui va vous sortir toute les dates et taille en octets et les noms de
tout les fichier qui côtoient exo_commenté et qu'il placera dans
ls_pub_royal.log.