fr
This commit is contained in:
parent
143d5c47d0
commit
b0143e51f9
58
LISEZMOI.md
58
LISEZMOI.md
@ -11,15 +11,15 @@ alternative pour archiver ses navigations internet.
|
|||||||
## Format de la base de donné
|
## Format de la base de donné
|
||||||
Seule une Url est requise, le reste des champs sont
|
Seule une Url est requise, le reste des champs sont
|
||||||
facultatifs, on compte les champs suivants :
|
facultatifs, on compte les champs suivants :
|
||||||
URL :
|
URL : ...
|
||||||
Name : Par défaut la balise </title> de la page
|
Name : Par défaut la balise </title> de la page
|
||||||
Description
|
Description : ...
|
||||||
Tags : mots-clés séparés d'une virgule
|
Tags : mots-clés séparés d'une virgule
|
||||||
Date : heure posix de l'ajout du lien
|
Date : heure posix de l'ajout du lien
|
||||||
Color : couleur css (nom, hex, rgb etc...)
|
Color : couleur css (nom, hex, rgb etc...)
|
||||||
|
|
||||||
Par exemple, dans un fichier qui s'appelle par défaut BOOKMARKS :
|
Par exemple, dans un fichier qui s'appelle par défaut BOOKMARKS :
|
||||||
...
|
```
|
||||||
URL: https://rosettacode.org/wiki/Rosetta_Code
|
URL: https://rosettacode.org/wiki/Rosetta_Code
|
||||||
Name: Rosetta Code
|
Name: Rosetta Code
|
||||||
Description:
|
Description:
|
||||||
@ -38,55 +38,65 @@ Name: Wayback Machine
|
|||||||
Description:
|
Description:
|
||||||
Tags: read
|
Tags: read
|
||||||
Date: 1704712747
|
Date: 1704712747
|
||||||
...
|
```
|
||||||
|
|
||||||
|
|
||||||
# Autres gestionnaires de signets de favoris :
|
# Autres gestionnaires de marque-pages :
|
||||||
- nb https://xwmx.github.io/nb/ (AGPL-3.0)
|
- nb https://xwmx.github.io/nb/ (AGPL-3.0)
|
||||||
- ??
|
- ??
|
||||||
|
|
||||||
|
|
||||||
# Dependances :
|
# Dependance~~s~~ :
|
||||||
Pour ajouter un lien via l'interface proposée, on aura besoin
|
Pour ajouter un lien via l'interface proposée, on aura besoin
|
||||||
d'installer dmenu ~~et htmlq~~.
|
d'installer dmenu ~~et htmlq~~.
|
||||||
|
* dmenu https://tools.suckless.org/dmenu/ (MIT/X)
|
||||||
- dmenu https://tools.suckless.org/dmenu/ (MIT/X)
|
* ~~htmlq https://github.com/mgdm/htmlq (MIT)~~ remplacé par une
|
||||||
|
commande awk
|
||||||
- ~~htmlq https://github.com/mgdm/htmlq (MIT)~~ remplacé par une
|
|
||||||
commande awk
|
|
||||||
## dmenu
|
## dmenu
|
||||||
Dmenu est un menu interactif qui permet de sélectionner et d'écrire des
|
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
|
valeurs dans un menu. Ces valeurs peuvent provenir d'un programme
|
||||||
fournit en entrée un *pipe* "|", par exemple :
|
fournit en entrée un *pipe* "|", par exemple :
|
||||||
|
```
|
||||||
ls | dmenu
|
ls | dmenu
|
||||||
|
```
|
||||||
affiche un menu déroulant avec les fichiers de mon répertoire. Dans
|
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 :
|
notre script, pour stocker le choix dans une variable, on peut faire :
|
||||||
|
```
|
||||||
tags=$(echo "" | dmenu -p "Enter comma-separated tags:")
|
tags=$(echo "" | dmenu -p "Enter comma-separated tags:")
|
||||||
|
```
|
||||||
## ~~htmlq~~
|
## ~~htmlq~~
|
||||||
Htmlq est un parseur d'html écrit en go. Peu importe quel parseur on
|
Htmlq est un parseur d'html écrit en go. Peu importe quel parseur on
|
||||||
utilise, on dirait que chaque langage a le sien.
|
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
|
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
|
et d'en filtrer des éléments html
|
||||||
Si en javascript pour récupérer tous les <h1> enfants d'une <section> on
|
Si en javascript pour récupérer tous les \<h1> enfants d'une \<section> on
|
||||||
peut faire
|
peut faire
|
||||||
document.querySelectorAll('section h1')
|
document.querySelectorAll('section h1')
|
||||||
En shell, c'est plus compliqué, htmlq est fait pour ça :
|
En shell, c'est plus compliqué, htmlq est fait pour ça :
|
||||||
|
```
|
||||||
cat fichier.html | htmlq 'section h1'
|
cat fichier.html | htmlq 'section h1'
|
||||||
|
```
|
||||||
Et pour récurer seulement le texte -- l'équivalent en javascript de
|
Et pour récurer seulement le texte -- l'équivalent en javascript de
|
||||||
.innerHTML :
|
.innerHTML :
|
||||||
|
```
|
||||||
cat fichier.html | htmlq 'section h1' --text
|
cat fichier.html | htmlq 'section h1' --text
|
||||||
|
```
|
||||||
On s'en sert pour récupérer la balise titre de la page à ajouter :
|
On s'en sert pour récupérer la balise titre de la page à ajouter :
|
||||||
|
```
|
||||||
curl page.html | htmlq 'title' --text
|
curl page.html | htmlq 'title' --text
|
||||||
|
```
|
||||||
Patch pré-sortie :
|
Patch pré-sortie :
|
||||||
|
```
|
||||||
|
curl $url | awk -v RS='</title>' \
|
||||||
|
'/<title>/ {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 !
|
||||||
|
|
||||||
|
# Usage :
|
||||||
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
|
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
|
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
|
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
|
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 :
|
fenêtre situé dans ~/.config/awesome/rc.lua j'ai les lignes suivantes :
|
||||||
|
```
|
||||||
awful.key({modkey}, "i", function()
|
awful.key({modkey}, "i", function()
|
||||||
awful.util.spawn_with_shell("add.sh") end,
|
awful.util.spawn_with_shell("add.sh") end,
|
||||||
{description = "Enregistre le lien copié dans signet.sh"}),
|
{description = "Enregistre le lien copié dans signet.sh"}),
|
||||||
|
```
|
||||||
|
|
||||||
# Structure du répertoire
|
# 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)
|
de donnés de liens (par défaut index.html)
|
||||||
style.css → La feuille de style pour styliser index.html
|
style.css → La feuille de style pour styliser index.html
|
||||||
script.js → Un peu de javascript pour:
|
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
|
- ajouter les couleurs de fond aux entrées qui en ont
|
||||||
- si le champs de description est vide, ne pas
|
- si le champs de description est vide, ne pas
|
||||||
l'afficher
|
l'afficher
|
||||||
- formater les dates du temps posix au format AA-MM-JJ
|
- formater les dates du temps posix au format AA-MM-JJ
|
||||||
/!\ Prochainement /!\
|
/!\ 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 !
|
||||||
|
122
README.md
122
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 </title> 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 \<h1> enfants d'une \<section> 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 </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 !
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user