From b0143e51f90fab4748382da4e759e5e81ddb7e08 Mon Sep 17 00:00:00 2001 From: clemtre Date: Fri, 12 Jan 2024 20:39:12 +0100 Subject: [PATCH] fr --- LISEZMOI.md | 58 +++++++++++++++---------- README.md | 122 ---------------------------------------------------- 2 files changed, 35 insertions(+), 145 deletions(-) diff --git a/LISEZMOI.md b/LISEZMOI.md index 7f373f7..8b58126 100644 --- a/LISEZMOI.md +++ b/LISEZMOI.md @@ -11,15 +11,15 @@ 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 : +URL : ... Name : Par défaut la balise de la page -Description +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: @@ -38,55 +38,65 @@ Name: Wayback Machine Description: Tags: read Date: 1704712747 -... +``` -# Autres gestionnaires de signets de favoris : +# Autres gestionnaires de marque-pages : - nb https://xwmx.github.io/nb/ (AGPL-3.0) - ?? -# Dependances : +# 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 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

enfants d'une
on +Si en javascript pour récupérer tous les \

enfants d'une \
on peut faire document.querySelectorAll('section h1') En shell, c'est plus compliqué, htmlq est fait pour ça : +``` cat fichier.html | htmlq 'section h1' +``` Et pour récurer seulement le texte -- l'équivalent en javascript de .innerHTML : +``` cat fichier.html | htmlq 'section h1' --text +``` On s'en sert pour récupérer la balise titre de la page à ajouter : +``` curl page.html | htmlq 'title' --text +``` Patch pré-sortie : +``` +curl $url | awk -v RS='' \ + '// {gsub(/.*<title>/, ""); print}' |\ + tr -d '\n' +``` +Pour l'instant cette étape est bloquante. Pour peu que la connection +internet coupe lors de l'ajout d'un lien, il faudra attendre la fin de +la tentative de curl pour passer au prochain champs du script :/ sorry ! - -C'est quelque chose qu'il faudra changer, pour l'instant cette étape est -bloquante. Pour peu que la connection internet coupe lors de l'ajout -d'un lien, il faudra attendre la fin de la tentative de curl pour passer -au prochain champs du script :/ sorry ! - -# Usage : (faites les votre) +# Usage : Pour ajouter un lien, je séléctionne l'url de la page avec Ctrl + l, la copie et lance add.sh avec Super + i. _Si quelqu'un sait récupérer l'url de la page courante du navigateur sans avoir à la copier, ça @@ -96,10 +106,11 @@ En résumé : Ctrl + l, Ctrl + c, Super + i Super + i car dans le fichier de configuration de mon gestionnaire de fenêtre situé dans ~/.config/awesome/rc.lua j'ai les lignes suivantes : - +``` awful.key({modkey}, "i", function() awful.util.spawn_with_shell("add.sh") end, {description = "Enregistre le lien copié dans signet.sh"}), +``` # Structure du répertoire @@ -112,11 +123,12 @@ signet.sh → Le script shell en lui-même de donnés de liens (par défaut index.html) style.css → La feuille de style pour styliser index.html script.js → Un peu de javascript pour: - - rechercher dans la </textarea> + - rechercher dans la \<textarea> - ajouter les couleurs de fond aux entrées qui en ont - si le champs de description est vide, ne pas l'afficher - formater les dates du temps posix au format AA-MM-JJ /!\ Prochainement /!\ -starred.sh → Un curl des repos de l'api github https://api.github.com/users/[user]/starred , formaté de json à une liste html sans jq ! - +starred.sh → Un curl des repos de l'api github +https://api.github.com/users/[user]/starred , formaté de json à une +liste html sans jq ! diff --git a/README.md b/README.md index de847c4..e69de29 100644 --- a/README.md +++ b/README.md @@ -1,122 +0,0 @@ -# Presentation -Signet.sh est un script shell qui transforme une base de donnée de liens -en une page html. 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 instatsifant, 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 - -URL: https://www.emigre.com/TypeSpecimens -Name: Emigre: Type Specimens -Description: -Tags: emigre, type -Date: 1704680644 -Color: Purple - -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 \

enfants d'une \
on -peut faire -document.querySelectorAll('section h1') -En shell, c'est plus compliqué, htmlq est fait pour ça : -``` -cat fichier.html | htmlq 'section h1' -``` -Et pour récurer seulement le texte -- l'équivalent en javascript de -.innerHTML : -cat fichier.html | htmlq 'section h1' --text -On s'en sert pour récupérer la balise titre de la page à ajouter : -curl page.html | htmlq 'title' --text -Patch pré-sortie : - - - -C'est quelque chose qu'il faudra changer, pour l'instant cette étape est -bloquante. Pour peu que la connection internet coupe lors de l'ajout -d'un lien, il faudra attendre la fin de la tentative de curl pour passer -au prochain champs du script :/ sorry ! - -# Usage : (faites les votre) -Pour ajouter un lien, je séléctionne l'url de la page avec Ctrl + l, la -copie et lance add.sh avec Super + i. _Si quelqu'un sait récupérer l'url -de la page courante du navigateur sans avoir à la copier, ça -économiserait deux étapes._ -En résumé : Ctrl + l, Ctrl + c, Super + i -(ou plus court : Ctrl + l + i, Super + i) - -Super + i car dans le fichier de configuration de mon gestionnaire de -fenêtre situé dans ~/.config/awesome/rc.lua j'ai les lignes suivantes : - -awful.key({modkey}, "i", function() -awful.util.spawn_with_shell("add.sh") end, -{description = "Enregistre le lien copié dans signet.sh"}), - -# Structure du répertoire - -BOOKMARKS → Une base de donnée de liens -add.sh → Un script pour rajouter un lien dans la base de donné - - dmenu - - ./signet.sh -signet.sh → Le script shell en lui-même - - Il génère une nouvelle page html à partir de la base - de donnés de liens (par défaut index.html) -style.css → La feuille de style pour styliser index.html -script.js → Un peu de javascript pour: - - rechercher dans la - - ajouter les couleurs de fond aux entrées qui en ont - - si le champs de description est vide, ne pas - l'afficher - - formater les dates du temps posix au format AA-MM-JJ -/!\ Prochainement /!\ -starred.sh → Un curl des repos de l'api github https://api.github.com/users/[user]/starred , formaté de json à une liste html sans jq ! -