TITLE: Converting Qutebrowser bookmarks to w3m bookmarks
DATE: 2018-12-01
AUTHOR: John L. Godlee
====================================================================


I use [Qutebrowser] as my primary web browser, but I also really
like using [w3m] for super fast text-based browsing when I’m
working mostly in the terminal. As a bit of practice in writing bash
scripts, I figured I would try to write a script which constructed a
w3m style bookmark.html from my Qutebrowser formatted bookmarks/urls
and quickmarks, because confusingly, Qutebrowser uses two files for
bookmarks, with different formatting. This is what I came up with:

 [Qutebrowser]: https://qutebrowser.org/
 [w3m]: http://w3m.sourceforge.net/

   #!/bin/bash

   touch ~/.w3m/bookmark.html

   echo "<html><head><title>Bookmarks</title></head>
   <body>
   <h1>Quickmarks</h1>
   <ul>" > ~/.w3m/bookmark.html

   while read line; do
       if [[ $line != *"qute"* ]]; then
           url=$(echo $line | sed 's@.* @@')
           desc=$(echo $line | sed 's/\(.*\) .*/\1/')
           echo "<li><a href=\"$url\">$desc</a>" >> ~/.w3m/bookmark.html
       fi
   done < ~/.qutebrowser/quickmarks

   echo "</ul>" >> ~/.w3m/bookmark.html

   echo "<h1>Other bookmarks</h1>
   <ul>" >> ~/.w3m/bookmark.html

   while read line; do
       if [[ $line != *"qute"* ]]; then
           url=$(echo $line | cut -d " " -f 1)
           desc=$(echo ${line#* })
           echo "<li><a href=\"$url\">$desc</a>" >> ~/.w3m/bookmark.html
       fi
   done < ~/.qutebrowser/bookmarks/urls

   echo "</ul>
   </body>
   </html>" >> ~/.w3m/bookmark.html

Firstly it creates a new bookmark.html, then echos some preamble
HTML, then loops through each line of quickmarks then urls, cutting
the line into the URL and the description of that URL, and forwards
it to bookmark.html, then it puts in the footer HTML material.
Importantly, it doesn’t include any bookmarks with the string qute
in them, which all refer to Qutebrowser only special URIs, it does
this with an if statement if [[ $line != *"qute"* ]]; then.

In w3m, I can then open bookmark.html with Esc-b.

For the record, .qutebrowser/bookmarks/urls looks like this:

   http://www.tablesgenerator.com/ Create LaTeX tables online
   http://rbasicsworkshop.weebly.com/ R Basics Workshop - Home
   http://app.uio.no/ifi/texcount/online.php TexCount
   https://snazzymaps.com/ Snazzy Maps - Free Styles for Google Maps
   http://www.protectedplanet.net/ Protected Planet

while .qutebrowser/quickmarks looks like this:

   Gmail https://mail.google.com/mail/u/0/h/
   Google Keep https://keep.google.com/
   Google Photos https://photos.google.com/
   YouTube http://www.youtube.com/