# 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 <prx@si3t.ch>
# 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.