PacSci
December 25th, 2009, 11:23 PM
There's a bunch of nice "open source" (CC, GFDL, etc.) books out there, like Dive Into Python, the Mercurial book, and of course various documentation. Downloading them could be kind of annoying, so I came up with an idea - Shelf, a package manager for books. The basic idea is that a book maintainer would write a "card catalog" file for a book, maybe something like this:
identifier: diveintopython
title: "Dive Into Python"
author: "Mark Pilgrim"
description: "A Python book for experienced programmers."
synopsis: >
...some text...
available in: [pdf, html]
pdf:
url: "http://diveintopython.org/download/diveintopython-pdf-5.4.zip"
archive file: diveintopython5.4/diveintopython.pdf
# and so on...
Then, you would run a command like 'shelf-get --card diveintopython.card' to download the book and extract the zip file. Then, when you wanted to read it, 'shelf-read diveintopython' would open the book in the PDF reader, or the Web browser if you downloaded the HTML edition.
identifier: diveintopython
title: "Dive Into Python"
author: "Mark Pilgrim"
description: "A Python book for experienced programmers."
synopsis: >
...some text...
available in: [pdf, html]
pdf:
url: "http://diveintopython.org/download/diveintopython-pdf-5.4.zip"
archive file: diveintopython5.4/diveintopython.pdf
# and so on...
Then, you would run a command like 'shelf-get --card diveintopython.card' to download the book and extract the zip file. Then, when you wanted to read it, 'shelf-read diveintopython' would open the book in the PDF reader, or the Web browser if you downloaded the HTML edition.