WebIDX est un moteur de recherche côté client pour les sites Web statiques.
Il fonctionne en utilisant un script Perl simple (webidx.pl) pour générer une base de données SQLite contenant un index des fichiers HTML statiques. La base de données SQLite est ensuite publiée à côté du contenu statique.
La fonctionnalité de recherche est implémentée dans webidx.js qui utilise sql.js pour fournir une interface au fichier sqlite.
Vous pouvez en voir une démo en direct ici.
$ /path/to/webidx.pl -x index.html -x archives.html --xP secret_files -o https://example.com -z . ./index.db
Vous pouvez exécuter webidx.pl --help pour voir toutes les options de ligne de commande disponibles.
< script src =" https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.10.1/sql-wasm.js " > </ script >
< script src =" https://cdnjs.cloudflare.com/ajax/libs/pako/2.1.0/pako.min.js " > </ script >
< script src =" /path/to/webidx.js " > </ script > < form onsubmit =" window.webidx.search({dbfile:'/webidx.db.gz',query:document.getElementById('q').value});return false; " >
< input id =" q " type =" search " >
</ form >Lorsque l'utilisateur frappe la touche de retour dans la zone de recherche, une boîte de dialogue modale apparaîtra contenant des résultats de recherche!
L'objet qui est passé à window.webidx.search() peut avoir les propriétés suivantes:
dbfile : URL du fichier de base de données SQLitequery : requête de rechercheresultCallback : un rappel qui est passé un tableau de résultats de recherche. Chaque résultat est un objet avec les propriétés title et url . S'il n'est pas défini, une boîte de dialogue modale sera affichée.errorCallback : un rappel qui a transmis toute chaîne d'erreur comme argument.titleSuffix : une chaîne à supprimer de la fin des titres de page.titlePrefix : une chaîne à supprimer du début des titres de page.