From: Joseph Nuthalapati Date: Fri, 18 Sep 2020 19:51:23 +0000 (+0530) Subject: Rolling my own Read It Later solution X-Git-Url: http://njoseph.me/gitweb/blog.git/commitdiff_plain/27baf70d9603aad1317b082a746be59d8fe319bc Rolling my own Read It Later solution Signed-off-by: Joseph Nuthalapati --- diff --git a/content/posts/read-it-later-solution.md b/content/posts/read-it-later-solution.md new file mode 100644 index 0000000..657e6f2 --- /dev/null +++ b/content/posts/read-it-later-solution.md @@ -0,0 +1,73 @@ +--- +title: "Rolling my own Read It Later solution" +date: 2020-09-18T23:51:09+05:30 +lastmod: 2020-09-18T20:40:09+05:30 +tags : [ "free-software", "Pocket", "Wallabag", "read-it-later", "Syncthing", "SingleFile", "Firefox", "addons" ] +categories : [ "free-software", "privacy", "archiving" ] +layout: post +type: "post" +highlight: false +--- + +After using Pocket (originally called Read It Later) and the self-hostable free software +Wallabag, I [started wondering](https://toot.thoughtworks.com/@njoseph_1/104872980794830072) +if this problem of archiving web pages to read later can be solved without +having to use a web application. + +Pocket | Wallabag +:-------------------------:|:-------------------------: +![Pocket Logo](/blog/pocket.png) | ![Wallabag Logo](/blog/wallabag.png) + +Essentially, what I need is a way of saving the entire content of a web page for +offline reading and maintain a list of such items. Also, I'd like the files to be +available on multiple devices. + +![Why not Syncthing meme](/blog/why-not-syncthing.png) + +My go-to solution for making things available on multiple devices is [Syncthing](https://syncthing.net/ "Syncthing website"). +Syncthing is a file synchronization solution that allows synchronizing the files +in one directory across multiple devices (a lot like rsync). Now the problem +boils down to saving web pages as files. + +Most browsers allow you to save webpages. But webpages saved thus are not a +single file, but a HTML file and a folder containing images, CSS files and +other assets. There's fortunately a Firefox addon called +[SingleFile](https://addons.mozilla.org/en-US/firefox/addon/single-file +"SingleFile addon") which does exactly this. It allows you to save a webpage as +a single HTML file by embedding the CSS, fonts, images etc. +(Printing to PDF is another option, but I'm not a big fan of PDF files.) + +SingleFile | Syncthing +:-------------------------:|:-------------------------: +![SingleFile logo](/blog/singlefile.png) | ![Syncthing logo](/blog/syncthing.png) + +Firefox allows you to configure custom shortcuts for each extension. My +preferred shortcut for saving a page for offline reading is Alt+C. You can also +click on the SingleFile icon to save the current page. + +![SingleFile addon shortcut](/blog/singlefile-addon-shortcut.png) + +SingleFile doesn't provide an option to set the download directory but saves the +file to the default download directory of the browser. I don't use the default +download directory anyway, so I set it to `~/Sync/to-read` +(`~/Sync` is the default directory synced by Syncthing). For other downloads, +Firefox asks me where to save each download. + +![Firefox default download location](/blog/firefox-default-download.png) + +In the file manager, simply sort by "Last Modified" to see the latest saved items. + +![Sorting by last modified](/blog/last-modified.png) + +You can now read your pages completely offline - a feature which most +read-it-later services cannot boast of! + +## Caveats + +* Browser performance might suffer when loading large pages saved by SingleFile. + Printing to PDF might be a better option in this case. +* Firefox Reader View might not work on a saved page even if it had worked on the original page. + +## Acknowledgements + +Thanks to [@mathew@mastodon.social](https://mastodon.social/@mathew "Mathew's profile on mastodon.social") for suggesting the SingleFile addon. diff --git a/img/firefox-default-download.png b/img/firefox-default-download.png new file mode 100644 index 0000000..7781a0a Binary files /dev/null and b/img/firefox-default-download.png differ diff --git a/img/last-modified.png b/img/last-modified.png new file mode 100644 index 0000000..577cbee Binary files /dev/null and b/img/last-modified.png differ diff --git a/img/pocket.png b/img/pocket.png new file mode 100644 index 0000000..4d8cd10 Binary files /dev/null and b/img/pocket.png differ diff --git a/img/singlefile-addon-shortcut.png b/img/singlefile-addon-shortcut.png new file mode 100644 index 0000000..96a5abd Binary files /dev/null and b/img/singlefile-addon-shortcut.png differ diff --git a/img/singlefile.png b/img/singlefile.png new file mode 100644 index 0000000..94859b1 Binary files /dev/null and b/img/singlefile.png differ diff --git a/img/syncthing.png b/img/syncthing.png new file mode 100644 index 0000000..c2cdfcf Binary files /dev/null and b/img/syncthing.png differ diff --git a/img/wallabag.png b/img/wallabag.png new file mode 100644 index 0000000..3843936 Binary files /dev/null and b/img/wallabag.png differ diff --git a/img/why-not-syncthing.png b/img/why-not-syncthing.png new file mode 100644 index 0000000..a486f84 Binary files /dev/null and b/img/why-not-syncthing.png differ