# Demo ?? # Presentation ## signet.sh Signet.sh est un script shell qui transforme une base de donnée de liens en une page web. La conversion est faite par une commande awk au sein d'une déclaration here-doc qui est redirigé dans une page html. J'ai créé ce script car je trouve le gestionnaire de marque-page de firefox insatisfaisant, autant dans sa forme que dans le format utilisé (sqlite). Ce script et les utilitaires autours proposent une une alternative pour archiver ses navigations internet. ## Format de la base de donné Seule une Url est requise, le reste des champs sont facultatifs, on compte les champs suivants : URL : ... Name : Par défaut la balise de la page Description : ... Tags : mots-clés séparés d'une virgule Date : heure posix de l'ajout du lien Color : couleur css (nom, hex, rgb etc...) Par exemple, dans un fichier qui s'appelle par défaut BOOKMARKS : ``` URL: https://rosettacode.org/wiki/Rosetta_Code Name: Rosetta Code Description: Tags: literacy, read Date: 1704675057 Color: Purple URL: https://www.emigre.com/TypeSpecimens Name: Emigre: Type Specimens Description: Tags: emigre, type Date: 1704680644 URL: https://web.archive.org/web/20211025182257/http://len.falken.ink/ Name: Wayback Machine Description: Tags: read Date: 1704712747 ``` # Autres gestionnaires de marque-pages : - nb https://xwmx.github.io/nb/ (AGPL-3.0) - ?? # Dependance~~s~~ : Pour ajouter un lien via l'interface proposée, on aura besoin d'installer dmenu ~~et htmlq~~. * dmenu https://tools.suckless.org/dmenu/ (MIT/X) * ~~htmlq https://github.com/mgdm/htmlq (MIT)~~ remplacé par une commande awk ## dmenu Dmenu est un menu interactif qui permet de sélectionner et d'écrire des valeurs dans un menu. Ces valeurs peuvent provenir d'un programme fournit en entrée un *pipe* "|", par exemple : ``` ls | dmenu ``` affiche un menu déroulant avec les fichiers de mon répertoire. Dans notre script, pour stocker le choix dans une variable, on peut faire : ``` tags=$(echo "" | dmenu -p "Enter comma-separated tags:") ``` ## ~~htmlq~~ Htmlq est un parseur d'html écrit en go. Peu importe quel parseur on utilise, on dirait que chaque langage a le sien. Il s'agit ici de fournir au programme une chaîne de caractère en entrée et d'en filtrer des éléments html Si en javascript pour récupérer tous les \