Ecrit par Jacques Guellec, jguellec@altavista.net. Ce programme est un "emailware", si vous l'utilisez envoyez moi un mail.
English version Vous pouvez récupérer http://perso.easynet.fr/~jguellec/program/perl/extern_link/extern_link_1.0.tar.gz.asc pour vérifier l'intégrité du fichier .tar.gz. Ma clé oublique est dans le source HTML de ce document et dans n'importe quel serveurs de clé PGP. Exemple: http://www.uk.pgp.net/pgpnet/wwwkeys.html
Vous pouvez distribuer Extern_Link en respectant les termes de la license
Download
Pendant le test d'une arborescence HTML destinée a être placée sur un CDROM, il à été constaté que les liens vers l'extérieur peuvent être gênants. Le fait de cliquer sur un tel lien, si la machine n'est pas connectée au réseau, provoque soit un message d'erreur soit le lancement d'une connexion par l'intermédiaire du modem.
Il est donc décidé que le click sur ces liens provoquera l'ouverture d'une fenêtre informant l'utilisateur sur la nature du lien et proposant soit de continuer soit d'abandonner. Exemple
Une fonction très simple en JavaScript fait très bien ce travail et le vrai travail du logiciel Extern_Link est d'ajouter cette fonction dans chaque fichier HTML d'une arborescence complète et l'appel à cette fonction dans chaque lien contenant http ou ftp de chaque fichiers HTML d'une arborescence complète. Ce qui dans mon cas représentait des milliers de fichiers.
Tout cela fonctionne très bien, sauf lorsque l'argument d'un lien est target=_blank. J'en ignore la raison. Pour tous les autres cas, il n'y a aucun problème.
Installation
Downloadez l'archive extern_link_1.0.tar.gz et décompressez la par un tar zxvf à l'endroit de votre choix. Un répertoire extern_link_1.0 se créera.
Mettez à jours votre PATH pour faire reconnaitre au système ce nouveau répertoire. Sous linux cela se passe dans le fichier /etc/profile
Ce que fait Extern_Link
Le logiciel parcourt l'arborescence ou le répertoire de départ, scanne tous les fichiers HTML et commence par ajouter la fonction JavaScript. Il laisse une signature à droite d'un tag HTML fermant </head> ou </title> ce qui permet au logiciel de ne pas rajouter une deuxième fonction s'il détecte la présence de cette signature.
Ensuite il parcourt à nouveau l'arborescence et ajoute l'appel de fonction dans chaque lien contenant http ou ftp.
Si un lien se présente par exemple comme ceci:
<a href=http://perso.easynet.fr/~jguellec>Web des Lilas</a>
Après le programme "Extern_Link" il se présentera comme cela :
<a href=javascript:onClick=extern_link('http://perso.easynet.fr/~jguellec');">Web des Lilas</a>
Il vous sera possible le cas échéant d'enlever tous les appels de fonction en lancant le programme avec l'argument -rmt (sur l'arborescence complète) ou -rmd (dans le répertoire)
Paramètrage
Il existe un fichier de configuration, extern_link.conf.
- Les variables WINDOW_LINE1 WINDOW_LINE2 sont les deux lignes de la fenetre JavaScript qui s'ouvrira lorsque l'utilisateur cliquera sur un lien exterieur.
- NEW_WINDOW Cette variable determine si la fonction JavaScript contiendra l'instruction fenetre=window.open(adresse, ''); ou window.location.href=adresse Dans le premier cas une nouvelle fenetre du navigateur s'ouvrira, dans le second l'adresse distante se chargera dans la meme fenetre.
- Premier cas: NEW_WINDOW 1
- Deuxieme cas: NEW_WINDOW 0
- SIGNATURE_AREA Cette variable représente le tag HTML après lequel sera mise la signature de ce logiciel. Cette signature permettra de tester la présence d'une première fonction, afin que le logiciel n'en écrive pas une seconde. Je conseille de mettre soit head soit title (majuscules ou minuscules) Le logiciel ecrira la signature apres le tag fermant. ex: </title>
- GROUP Le nom du group unix auquel les fichiers traités appartiendront.
- DROIT Les droits des fichiers traités
Utilisation
- Si vous souhaitez travailler seulement dans un seul répertoire:
- extern_link -d nom/du/repertoire/de/depart
- Si vous souhaitez travailler sur une arborescence complète:
- extern_link -t nom/du/repertoire/de/depart
- Si vous souhaitez enlevez tous les appels de fonction mis par le logiciel Extern_Link ou l'ancienne version Liens_exterieurs il vous suffit de lancer:
Pour une arboresence complète: -rmt
- extern_link -rmt nom/du/repertoire/de/depart
Pour un répertoire: -rmd
- extern_link -rmd nom/du/repertoire/de/depart
Dans tous les cas vous pouvez éventuellement si vous vous trouvez dans le répertoire à traiter taper:
- extern_link -arg .
Les fonctions et les signatures resteront mais sans provoquer une quelconque gêne.
© Lilas - 98 / 99