I use Readability to bookmark all the articles I come across every day. Since I do not usually have time to sit down and read during the day, I read at night. Although, I prefer reading physical books to my laptop or phone screen. So, I decided to create books of all my articles per year. They would serve as reading list history and also ease the actual "reading" process.


  • Export all my bookmarks from Readability
  • Compile the content of all the articles into a book format
  • Create PDF for backup and print


This was easy. Readbility just emails you a JSON document with all of your bookmark data. Or you can use their API to gather this information.


This was a bit more difficult. Since the export data did not include the article content, I had to "parse" the URL's for content. Luckily, Readability's API includes their parser also.

I wrote this simple node application to combine the article contents together into a HTML page:

//Create Reading List eBook
var readability = require('readability-api');
var async = require('async');

var articleUrls = require('./readability.json').bookmarks.map(function(
) {
	return article.article__url;

	parser_token: '<API KEY>'

var parser = new readability.parser();

var html =
	'<!DOCTYPE html><html><head><meta charset="UTF-8"><link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet"><title>Reading Material 2014</title></head><body class="container">';

	function(url, done) {
		parser.parse(url, function(err, article) {
			if (article) {
				html +=
					'<article><h1>' +
					article.title +
					'</h1><p>' +
					article.content +
	function() {
		html += '</body></html>';

After creating and styling the HTML a bit, I used Google Chrome to print the page to PDF for me. I realize this could have been done within the node app also, but Chrome was quicker at the time.

Now each year I can have a digital history of what I read and have physical copies to fill my bookshelf with.

Back to all posts