# Formulaire de recherche (gemini) 2021-05-01T21:07:51Z J'ai éjouté un petit formulaire de recherche pour mon site. Il ne dépend d'aucun service extérieur et permet de retrouver dans quel fichier se trouve le contenu souhaité. => gemini://si3t.ch/cgi-bin/search Moteur de recherche sur mon site C'est surtout une preuve que c'est faisable. Il n'y a pas d'optimisation, et surtout pas de cache. Vous l'aurez compris, j'ai pour objectif de faire la même chose en C (plus rapide et sécurisé). En attendant, je vous pose le code là quand même, car c'est basé sur "grep" donc doit permettre (si on enlève l'option "-F") de faire des recherches par regex: ``` #!/bin/sh # search engine in capsule # prx # Licence MIT # TODO : add cache set -e # CHANGEME capsule_dir="../" ext=".gmi" msg="Search on si3t.ch:" found="trouvé dans :" if [ -z "${QUERY_STRING}" ]; then printf "10 $msg\r\n" exit else s="$(printf "%s" "${QUERY_STRING}" | tr -cd '[:alnum:][:space:]_-')" printf "20 text/gemini\r\n" printf "# ${s} ${found}\n" fi # tr delete multiple spaces # sed remove ":" after filename # sed add "=> " for gemini link and replace leading "." cd "${capsule_dir}" find "." -type f -name \*${ext} -exec grep -FiIsH "${s}" {} \; |\ tr -s '[:space:]' |\ sed -e 's/:/ /' -e 's/^\./=> /' ``` ## Une réaction? => mailto:bla@bla.si3t.ch?subject=recherche-gemini Envoyez votre commentaire par mail. => /log/commentaires Mode d'emploi de la liste de diffusion pour recevoir les réponses.