diff --git a/README.md b/README.md index eea42a6..f264689 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,50 @@ *FR → LISEZMOI.md* -# Demo + +**Work in progress, if you encounter any issues regarding +installation or understanding what this is all about, please send an +email to contact@martinlemaire.fr or open an issue here and i'll be +happy to answer** + +A browsable webpage generated from a textual database you might want to +use as a browser homepage. You can edit the database by editing the file +called BOOKMARKS or by running the provided script called +edit_bookmarks_dmenu.sh (requires dmenu). The script can be ran from the +command line but I suggest to bind it to a keystroke combination. + +index.html ![a browsable bookmark manager](demo.png) -**A demo more understandable and browsable to be released soon** +Its corresponding textual database, in the form of blankline separated +records with key/value fields : + +BOOKMARKS +``` +URL: http://fileformats.archiveteam.org/wiki/HEX_(Unifont) +Name: HEX (Unifont) - Just Solve the File Format Problem +Description: +Tags: bbb, hex +Date: 1704636690 +Color: Pink + +URL: http://robhagemans.github.io/monobit/ +Name: Hoard of bitfonts +Description: A python tool to manipulate bitmap fonts and do format conversions +Tags: bitmap, fonts +Date: 1704639859 + +URL: https://en.wikipedia.org/wiki/Wish_(Unix_shell) +Name: wish (Unix shell) - Wikipedia +Description: a Tcl interpreter extended with Tk commands for unix. +Tags: gui, wish, tcl +Date: 1704646543 + +URL: https://www.kreativekorp.com/ +Name: Rebecca G. Bettencourt +Description: +Tags: RGB, people, hide +Date: 1704648764 +``` +Given this database, signet will color the first link in pink and hide +the last one because of its "hide" tag. # Presentation ## signet.sh @@ -10,50 +53,62 @@ It uses awk inside a here-doc declaration redirected to an html file. I have created this script because I found the bookmarks manager from firefox not great to use, to the point where I did not have the habit to -bookmark my browsing. Firefox stores bookmarks in a sqlite format and I -wanted something text based. - -I have been using the generated html page as a default landing page for -three months, it has been a pleasing experience so far. +bookmark my browsing journeys. Firefox stores bookmarks in a sqlite +which is not human readable. Although it allows an export in json and +html, I wanted something text based and personal. ## Bookmarks database format Only a Url is required, the rest of the fields are optional : -* URL : ... -* Name : grabs from the bookmarked page -* Description : ... +* URL : the url pasted from the clipboard (exits if no url given) +* Name : grabs from the bookmarked page with curl +* Description : a description from the user * Tags : comma separated keywords -* Date : posix time of the bookmarked link +* Date : posix time of the bookmarked link * Color : css color (name, hex, rgb etc...) -For example, in a file called BOOKMARKS by default: -``` -URL: https://rosettacode.org/wiki/Rosetta_Code -Name: Rosetta Code -Description: -Tags: literacy, read -Date: 1704675057 -Color: Purple +# Usage +## Add a bookmark : -URL: https://www.emigre.com/TypeSpecimens -Name: Emigre: Type Specimens -Description: -Tags: emigre, type -Date: 1704680644 +To add a link, I select the URL of the page with Ctrl + l, then copy to +clipboard and run add.sh with Super + i. -URL: https://web.archive.org/web/20211025182257/http://len.falken.ink/ -Name: Wayback Machine -Description: -Tags: read -Date: 1704712747 +__If anyone knows how to retrieve the url of the current browser page +without having to copy it and send it to clipboard, this would save two +steps out of three.__ + +In short : Ctrl + l, Ctrl + c, Super + i + +(or shorter : Ctrl + l + c, Super + i) + +Super + i because in my window manager (awesomewm) configuration file +located in ~/.config/awesome/rc.lua, I have the following lines: +``` +awful.key({modkey}, "i", function() +awful.util.spawn_with_shell("add.sh") end, +{description = "Sends the link in clipboard to add.sh"}), ``` +## Edit a bookmark : +Use your text editor of choice. Open the BOOKMARKS file and edit the +entry. The last entry is at the bottom. -# Other bookmark managers: -- nb https://xwmx.github.io/nb/ (AGPL-3.0) -- ?? +If you use vim, with BOOKMARKS opened you can press in normal mode m + +B and it will save a mark to the file you can then access with ' + B + +# Installation +Works on my machine : Ubuntu 20 LTS, it should work on any POSIX +compliant machine, macOS, linux* or bsd*. I'm curious to know how it +goes on windows :^) + +clone the repo +``` +git clone https://git.vvvvvvaria.org/clemtre/signet.sh.git +cd signet.sh +``` # Dependency : + To add a link via the proposed interface, we will need to install dmenu ~~and htmlq~~. * dmenu https://tools.suckless.org/dmenu/ (MIT/X) @@ -71,6 +126,9 @@ In our script, to store the given tags in a variable, we can do: ``` tags=$(echo "" | dmenu -p "Enter comma-separated tags:") ``` +### install dmenu : +https://askubuntu.com/questions/828450/how-to-install-dmenu + ## ~~htmlq~~ Htmlq is an HTML parser written in Go. It doesn't matter which parser we use, it seems that each language has its own. @@ -105,31 +163,11 @@ For the moment this step is blocking. In case internet cuts while bookmarking a link, you will have to wait for the end of the curl attempt to move to the next field in the script :/ sorry! -# Add a bookmark : - -To add a link, I select the URL of the page with Ctrl + l, the copy and -run add.sh with Super + i. - -__If anyone knows how to retrieve the url of -the current browser page without having to copy it, this would save two -steps out of three.__ - -In short : Ctrl + l, Ctrl + c, Super + i - -(or shorter : Ctrl + l + c, Super + i) - -Super + i because in my window manager configuration file located in -~/.config/awesome/rc.lua, I have the following lines: -``` -awful.key({modkey}, "i", function() -awful.util.spawn_with_shell("add.sh") end, -{description = "Enregistre le lien copié dans signet.sh"}), -``` - # Repository structure : * BOOKMARKS → A textual database of bookmarks -* add.sh → A script to add a link to the database +* edit_bookmarks_dmenu.sh → A script to add a link to the database using + dmenu * dmenu * ./signet.sh * bookmark.sh → The shell script itself @@ -148,6 +186,10 @@ starred.sh → curl from the github user api and format it in the same way as signet.sh without using jq https://api.github.com/users/[user]/starred +# Other bookmark managers: +- nb https://xwmx.github.io/nb/ (AGPL-3.0) +- ?? + # Credits * Junicode (OFL-1.1) https://psb1558.github.io/Junicode-font/