Another OPML viewer for Federated Bookshelves

I am playing with a new toolkit from Dave Winer for working with OPML (https://github.com/scripting/opmlPackage), and modified the client example to read my booklist file – nice!

A reader wanted instructions on how I did this, so here they are:

  • Download the zip file from the Github repo
  • Edit code.js in the client folder to provide a URL for an OPML file that is available on the web
  • Upload the files to some web hosting
  • Go to index.html to view the OPML file

Requirement brainstorm and some tools for Federated Bookshelves

I summarized requirement-type information from a number of posts on the Federated Bookshelves/Library JSON idea, see the Github repo for details. If anyone is interested in participating in a conversation on this topic, I have created a Github issue to capture comments.

Also, I found two tools today to more easily view OPML and JSON files:

  • OPML Viewer  – Can open an OPML file (local or online) and show original text and XML tree view
  • JSON Viewer   – Can open a JSON file (local or online) and show original text and object view

I added these to the tools section on the main Federated Bookshelves repo file.

A Federated Bookshelves reader

Recently, Ton Zijlstra wrote about the concept of “federated bookshelves”, in which he referenced a post by Tom Critchlow on a similar concept called “Library JSON”. I have played with this idea based on Ton’s proof of concept. I also read through the postings flowing from Tom Crichlow’s post in 2020, and the ones from Ton Zijlstra’s post this year, and thought it would be helpful to provide a chronology of the development of this idea. To this end, I have created a Github repo with a chronology and links to tools and other distributed book info concepts that I have come across in reading on this topic. Pull requests and other comments are welcome! I am planning to spend more time on this in the next few weeks, so hopefully more prototypes and ideas to come….

OPML in the wild

Dave Winer posted a few days ago that he was looking for examples of OPML in “production”. I assume that means “being used by someone or in an app”. I thought I would contribute a few items…

Zylstra.org – Ton Zijlstra’s OPML blog roll in a human readable form (reference)

Zylstra.org – Ton Zijlstra’s booklist in OPML (reference)

AndySylvester.com – Andy’s beginning booklist in OPML (reference)

AndySylvester.com – Reading lists in OPML for the River5 feed reader/aggregator

 

Federated Bookshelves Update #2

After reviewing a Selfoss issue on Github which described the behavior I saw in my first post on this topic:

This depends on the mime-detection on your server. You need to map .opml to the right mime-type application/xml in your webserver.

and this MDN page on updating mime types:

  • If you’re using the Apache web server, check the Media Types and Character Encodings section of Apache Configuration: .htaccess for examples of different document types and their corresponding MIME types.

I decided to look at my own web hosting to see if I could find and modify the .htaccess file. For Bluehost, there is an .htaccess file within the public_html folder. I thought I would start with this one and see how things went.

Looking at this example configuration file for media types from HTML5 Boilerplate project, I saw this:

AddType application/xml xml

I then added this line to my .htaccess file:

AddType application/xml opml

After uploading that addition, my OPML file renders the same way that Ton’s file doessuccess!

 

Federated Bookshelves Update #1

Ton gave me a suggestion to refer to the XSL file on my local domain. I did this, but still only saw the raw OPML appear. After some thinking, I thought about MIME types, and wondered if this was set up on my web hosting to serve OPML as XML. I uploaded a copy of the file with a .xml extension, and everything worked! I have found some resources for updating MIME types, will post later after some experimenting.

Getting started with Federated Bookshelves

Some time ago, I read a post from Ton Zijlstra on the concept of federated bookshelves. His original post was riffing on an idea by Tom Critchlow called Library-JSON. Recently, Ton revisited this topic, and in a short period of time created a working prototype OPML file and a XSL stylesheet to view the OPML file.

I finally had some time this weekend to play around with this. Here is my work so far:

I had some problems using Ton’s XSL file. On my server, when I entered the URL of the OPML file, all that was displayed was the OPML file. However, I found a tool to apply the XSL transformation, and the resulting file was a valid HTML page (the “transformed file” above). I will continue to investigate this and also reach out to Ton to see if I did something wrong.