Les plugins de recherche permettent un accès pratique et rapide à un
certain nombre de moteurs de recherche du web. Ils peuvent être utilisés par
tous les navigateurs supportant cette technologie, c'est-à-dire Mozilla,
Firefox, Netscape, Beonex, ainsi que les applications Sherlock d'Apple. Nous
allons, à travers ce tutoriel, créer un plugin de recherche pour exalead qui ne
retournera que les pages en français.
Pré-requis pour pouvoir suivre cette documentation
:
Exalead est un moteur de
recherche généraliste récent. Il existe une interface en français, qui offre la
possibilité d'effectuer une recherche sur les pages en français. La première
chose à faire est de vous rendre sur le site officiel et sur la page des plugins de recherche pour le
web francophone afin de vérifier qu'un tel plugin n'existe pas déjà.
Maintenant que nous avons vérifié que notre travail ne servira pas à réinventer
la roue, nous nous rendons sur la page d'Exalead qui permet d'effectuer des
recherches en français. Puis nous effectuons une recherche quelconque, par
exemple le mot papillon. Nous relevons l'adresse URL complète qui
s'affiche dans la barre des tâches. Il s'agit ici de :
http://www.exalead.fr/search/C=0MGwAMwA%3d/?U=&C=0MGwAMwA%3D&2q=&q=papillon&scope=all&htarget.x=19&htarget.y=31&htarget=Ok
Cette ligne peut se décomposer en deux parties : l'adresse d'une page, ici :
http://www.exalead.fr/search/C=0MGwAMwA%3d/
suivie de différents arguments, débutant avec le caractère ?, et séparés par
le caractère &, ici :
?U=&C=0MGwAMwA%3D2q=&q=papillon&scope=all&htarget.x=19&htarget.y=31&htarget=Ok
Nous retrouvons bien notre requête, papillon, ce qui est bon signe. (Dans le
cas contraire, il s'agit probablement d'une page générée par du php, et il est
alors impossible de réaliser un plugin de recherche). Certains sites incluent
dans cette liste de caractères un identifiant de session, qui va être différent
à chaque fois que l'on effectue une recherche sur le site. Dans ce cas, il est
impossible de réaliser un plugin de recherche. Pour être certains de pouvoir
effectuer un plugin de recherche, nous allons copier l'URL obtenue, fermer notre
navigateur, le rouvrir, et coller l'URL dans la barre d'adresse. Si nous tombons
sur la même page de résultats que précédemment, nous pouvons continuer.
Nous allons maintenant commencer à écrire le code de notre plugin. Nous allons créer un fichier avec l'extension src, et avec un nom qui nous permettra de caractériser de manière la plus précise possible notre plugin. Nous créons donc maintenant le fichier exalead-fr.src, et nous allons l'éditer avec un éditeur de texte. Le fichier doit avoir une certaine structure que nous découvrirons au fur et à mesure.
Un plugin peut (mais ce n'est pas obligatoire), commencer par quelques lignes de commentaire. Un ligne qui commence par le caractère dièse (#) est considérée comme un commentaire. On y trouve typiquement des informations telles qu'une rapide présentation du plugin, la date de création, les contacts de l'auteur, et les bugs de ce plugin. Mais vous pouvez y mettre ce que vous voulez. Nous pouvons aussi placer des commentaires n'importe où dans le fichier, pas seulement au début. Ils serviront par exemple à ajouter des fonctions qui ne seront pas activées par défaut, mais qui pourront l'être en décommentant la ligne.
Le corps du plugin commence par la ligne
Nous pouvons aussi écrire
si nous le souhaitons, ou même
car les balises et les commandes d'un plugin de recherche sont insensibles à la casse. Évidemment, il est tout de même recommandé d'écrire, soit tout en majuscules, soit tout en minuscules, afin de pouvoir le relire, corriger une erreur, ou le mettre à jour le plus facilement possible.
Le plugin doit ensuite comporter la ligne
Elle n'est pas utile pour Mozilla ou Firefox, mais est elle nécessaire pour utiliser votre plugin avec Netscape. Cela correspond à la dernière version de Netscape à l'heure actuelle.
Nous allons ensuite écrire la ligne
Cela correspond au nom du plugin tel qu'il apparaîtra dans la barre de recherche du navigateur, une fois installé. Si vous souhaitez mettre dans le nom de votre plugin des caractères non ASCII, c'est-à-dire par exemple des caractères accentués ou des cédilles, vous devez encoder votre fichier en Mac-Roman.
Nous écrivons maintenant la ligne
Elle est utile pour les utilisateurs de Macintosh.
Cette commande correspond à l'adresse de la page des résultats de notre recherche. Nous l'avons déjà isolée tout à l'heure. Nous allons donc écrire :
Nous noterons ici l'adresse à partir de laquelle nous avons effectué notre recherche, soit :
Cette commande est utilisée par certaines fonctionnalités de Mozilla et de Netscape (outils –> recherche sur le Web).
Nous écrirons systématiquement :
Parfois, le plugin de recherche ne permet pas de réaliser des recherches comprenant des caractères accentués et cette balise est nécessaire, Dans d'autres cas, elle n'est pas strictement nécessaire au fonctionnement du plugin dans Firefox, mais peut être utile pour certains outils de recherche qui ne savent pas déterminer le jeu de caractères ( par exemple l'extension ConQuery pour Firefox ). Les jeux de caractères les plus fréquent sont iso-8859-1 et UTF-8. Une fois que notre plugin sera terminé, nous n'oublierons pas de faire en test en effectuant une recherche sur un mot avec des accents, par exemple épicéa. Dans le cas d'exalead, c'est iso-8859-1 qui convient. Nous écrirons donc :
Vous pouvez tester le jeu de caractères avec l'extension ConQuery. Il faut trouver un jeu de caractères qui fonctionne à la fois avec la barre de recherche de Firefox et avec l'extension ConQuery. De manière générale, nous commencerons par essayer avec iso-8859-1 qui est le plus fréquent ; si cela ne fonctionne pas, nous essayerons avec UTF-8 et si cela ne marche toujours pas, il faudra regarder dans le code source de la page quel est le jeu de caractère utilisé.
Nous allons maintenant fermer la balise search en écrivant la ligne suivante :
Nous avons réalisé la première partie du plugin. Nous allons maintenant nous occuper des paramètres.
Si nous reprenons notre ligne d'arguments :
?U=&C=0MGwAMwA%3D&2q=&q=papillon&scope=all&htarget.x=19&htarget.y=31&htarget=Ok
nous
voyons que nous pouvons la décomposer en six arguments: U= ; C=MGwAMwA%3D ; 2q= ; q=papillon ; htarget.x=19 ; htarget.y=31 et htarget=OK. La requête que nous avons effectuée était le mot
papillon. Il correspond à l'argument q=papillon
Pour chacun des arguments, sauf pour l'argument q=papillon, nous écrirons la ligne:
Cela nous donne ici:
Pour l'argument qui correspond à notre requête, nous avons écrit :
ce qui donne ici :
Enfin, nous écrirons
Cette balise sert à faire savoir aux webmasters qu'une recherche a été réalisée à l'aide du moteur de recherche intégré de Mozilla. L'ordre des arguments est important pour certains moteurs de recherche et il est parfois nécessaire de placer cet argument en dernier. Sauf cas particulier, nous placerons donc cet argument en dernière position dans la liste d'arguments.
Dans mozilla par exemple, lorsque les plugins de recherche sont bien codés, nous obtenons, après une recherche, les résultats de cette recherche dans la barre latérale. Pour cela, il a fallu définir dans le plugin de recherche, des motifs qui correspondaient au début et à la fin d'un résultat. Cette fonctionnalité n'est pas strictement nécessaire au fonctionnement d'un plugin de recherche, mais elle apporte des possibilités très intéressantes. Outre la séparation des résultats dans Mozilla, on peut également effectuer une recherche sur plusieurs moteurs en même temps. Les résultats sont alors ceux obtenus grâce aux balises interpret. On peut également imaginer que se développent dans un futur proche, grâce à cette technologie, des outils de recherche puissants capables par exemple de trier les résultats de plusieurs moteurs de recherche par pertinence. Si votre plugin de recherche est capable d'interpréter lui-même les résultats d'une recherche, il pourra être réutilisé directement.
Nous commençons tout d'abord par déclarer que nous allons interpréter les résultats:
Il nous faut maintenant aller regarder dans le code source de la page de résultats. Nous allons chercher un motif qui correspond au début de la recherche de résultats. Nous constatons que la partie qui correspond aux résultats proprement dits est comprise entre <span>documents 1-10 et <td class="s83" colspan="2" align="center">©2004 exalead</td> Nous allons donc écrire:
Nous remarquons que le motif que nous avons choisi qui correspond à la fin de la zone de recherche contient des caractères guillemets ("). Nous devons donc l'encadrer par des apostrophes simples (').
Maintenant que nous avons isolé la zone de résultats, nous allons isoler les résultats un par un. Un résultat correspond en fait à une balise <a href … > … </a> Les résultats qui nous intéressent ici sont les résultats principaux (par exemple de l'oeuf au papillon ou bien le tropique du papillon). Nous ne voulons pas que s'affichent les liens vers les catégories (voyages et tourisme par exemple). Nous constatons que les liens qui nous intéressent sont tous encadrés par le code <td class="d1" valign="middle"> et <span class="s22"> Nous pouvons donc écrire :
Nous allons ensuite écrire la ligne suivante pour fermer notre balise interpret:
De même que pour la balise queryCharse, il peut arriver que les résultats dans la barre latérale de Mozilla n'affichent pas ou affichent mal les caractères accentués. Il vous faudra alors ajouter, à l'intérieur de la balise interpret, la commande
ou
pour corriger cela.
Vous pouvez tester vos balises interpret à l'aide du navigateur Mozilla. Vous pouvez consulter de la documentation complémentaire derrière . Vous pouvez aussi vous aider de la fonction de débogage du validateur de plugin. Il est fortement conseillé d'effectuer beaucoup de tests avec différentes requêtes pour vérifier que vos motifs restent valables quelle que soit la recherche effectuée.
L'interface du moteur de recherche exalead ayant subie des modifications depuis la rédaction de ce tutoriel, il est possible que le résultat des balises interpret donné ici ne corresponde plus à la réalité. Néanmoins, la méthode exposée s'applique toujours.
Notre plugin est maintenant presque terminé. Nous ajoutons la ligne
pour signifier que nous avons terminé le plugin.
Il peut arriver que le plugin ait besoin d'être mis à jour, soit que le formulaire de recherche ait changé, soit que vous ayez fait un oubli dans le plugin et que vous vouliez le modifier. Vous devez donc placer un fichier.src ainsi qu'une icône dans un endroit accessible grâce au protocole http. Il vous faut définir également une fréquence de mise à jour, c'est-à-dire le nombre de jours que va attendre Firefox (ou Mozilla ou Netscape) avant de chercher si une mise à jour est nécessaire. Si vous placez le fichier src à l'adresse suivante : http://www.monsite.com/sherlock/exalead-fr.src, l'icône à l'adresse suivante : http://www.monsite.com/sherlock/exalead-fr.png et que vous voulez une fréquence de mise à jour de six jours, vous devrez écrire les lignes suivantes :
Dans ce cas, tous les six jours, pour le fichier .src et pour l'icône, Firefox comparera la date de dernière modification du fichier sur le serveur avec la date de dernière modification du fichier sur le disque dur. Firefox remplacera alors le fichier du disque dur par le fichier du serveur.
Si vous voulez proposer votre plugin à Mycroft, il vous faudra alors écrire:
Le code du plugin est maintenant terminé. Il nous manque encore une icône associée. Si le site possède un favicon, nous pouvons par exemple le récupérer. Nous allons nous servir du service grabicon. Nous entrons l'adresse URL d'exalead, c'est-à-dire, http://beta.exalead.fr; nous choisissons un format d'image, et nous récupérons l'icône associée. Le fichier icône doit avoir le même nom que le fichier .src et doit avoir pour extension .gif, .jpg, .jpeg, ou .png. L'extension du fichier icône ne doit pas obligatoirement correspondre au type du fichier. Ainsi, vous pouvez si vous le souhaitez, avoir une icône au format png nommée exalead-fr.gif Néanmoins, il est préférable que l'extension corresponde au format du fichier. Le format png est préférable pour ce type de fichier. Si le site ne possède pas de favicon ou qu'il ne vous convient pas, vous pouvez créer une icône. Elle doit avoir une taille de 16x16 pixels.
Il est temps maintenant de soumettre votre nouveau plugin à l'épreuve du feu et de l'installer dans Firefox pour le tester et l'utiliser. La manipulation à effectuer dépend ici de votre système d'exploitation. Un plugin de recherche est constitué de deux fichiers : le fichier .src et l'icône associée. Il faut les placer dans le répertoire searchplugins du dossier d'installation de Firefox.
Attention : toutes ces manipulations sont à effectuer Firefox fermé
Si vous souhaitez faire profiter d'autres personnes de votre plugin de recherche, vous pouvez le proposer à Mycroft qui est le site officiel des plugins de recherche. Il propose actuellement plus de 3500 plugins de recherche. Vous pouvez également les proposer sur le site des plugins pour le web francophone par l'intermédiaire du formulaire. Il est fortement conseillé, avant de soumettre votre plugin, de le vérifier à l'aide du validateur de plugin
Ce document n'aborde pas les commandes update à l'intérieur de la balise search, celles-ci étant propres aux applications sherlock d'Apple. Il n'aborde pas certaines fonctions avancées des commandes input : inputnext et inputprev, ni de l'interprétation des résultats : BrowserResultType, bannerStart, bannerEnd, relevanceStart, relevanceEnd, skiplocal, etc. Enfin, il n'aborde pas la commande alsomatch, ni la commande queryencoding. Pour des informations complémentaires, vous pouvez lire la documentation de Mycroft
* : Cette balise ou cette commande n'est pas strictement nécessaire au fonctionnement du plugin dans Firefox ou Mozilla. Il est néanmoins préférable de l'inclure dans votre fichier.