OPML Zettelkasten Update – Day 2

I was able to add another 10 links to my ZK OPML file (did you like how I shortened that name?), have noticed a few workflow things in these first two days. First, I am assigning links under a category outline heading, but I am also adding link for each item and usually have at least two tags per link. Second, Drummer usually allows me to select text by click/drag when I start editing, but at some point, I have to enter links manually (adding a href tag, etc). This is a drag, but I am pushing on. Third, I started by reviewing feeds in my reading list app, added those first to the ZK file, then added other saved links until I got to my goal of 10 links.

So far, adding 10 links at a time is taking at least 30-45 minutes. I am not sure if I can keep up that pace, but again I am pushing on – time will tell.

I have looked over several themes for the Hugo static site generator as a tool for using Markdown files for a zettelkasten, my initial choice will be the Fluency theme (Githubdemo), as it seems to feature the ability to display content by tags.

Some links of note for ZK info that I found during my Hugo search (guess I will have to add these to my ZK file!):

  • Zettelkasten.de – Getting started series
  • Tomas Vik – Zettelkasten note taking after one year
  • Rebecca Williams – The Zettelkasten Method: Examples to help you get started. 
  • Raymond Sims – My Minimalist Personal Knowledge Management System (PKMS) 

I added another example OPML file to the OPML Includes demo app (a subscription list from Ton Zijlstra). He had an include of another OPML file which appears to render correctly. I tried a second file from Ton that had a “circular include”, that one seemed to have a problem, so I removed it for further analysis.

A talk between two users

I had a great discussion today with Frank McPherson about OPML, OPML includes, my OPML Includes test app, and our joint experiment in using drummer.this.how to show included files. We agreed that to view updates in drummer.this.how for an OPML file that includes another OPML file, the master OPML file has to be opened in Drummer and refreshed to see updates. In my test app, when a user goes to the app URL, they will get the latest updates for all included files. This will also occur each time the test app is refreshed in the browser.

Another subject we discussed was how a user could know if updates had been made to one of the OPML files. The JSON object for the included OPML files contains the lastModified element from the head of the OPML file, so this date/time could be displayed like in the drummer.this.how app for any or all of the included OPML files. Frank wrote about having each top-level headline as an item in a RSS feed (one way to provide notification of changes). I could envision an app that could look at changes in an OPML file and create some kind of item using the namespace feature in RSS. It is an area worth exploring.

I also spent some time today looking at Dave Winer’s update to the outlineBrowser toolkit. I downloaded his personal site repo and set up a test site using my Oregon elections OPML file, and the rendering/navigation looked good. I am going to work on trying to incorporate these latest changes into my OPML Includes test app.

Continuing experiments with OPML files

I reviewed Frank McPherson’s OPML experiment file, and saw that he suspected that updates to included files would not be visible unless the file was re-opened in Drummer. I decided to give this a test by adding another heading in my test file with some more text, then reloaded Frank’s test file. I did not see the new content. Next, I added Frank’s OPML file being viewed with drummer.this.how to my OPML Includes test app, and was pleased to see that I could view all of the new text in my test file. Another good result from this test is that the OPML Includes app was able to read the content of Frank’s file as an include file, and of my test file, so includes within an include file are brought in using the includes feature of opmlPackage. Excellent!

Demo of OPML Includes feature in opmlPackage

Dave Winer released an update to his opmlPackage NPM module in May 2022, adding a feature to be able to include other OPML files within an OPML file. I wanted to create a demo of this feature and show the outlines within a web app. I combined code from the outlineBrowser toolkit to create an Express application demonstrating this feature. A live demo is available here – check it out! Comments and suggestions welcome on the Github repo. Ken Smith and Frank McPherson were collaborators on this demo, I appreciate their input!

Using OPML to organize information for use

Recently, Ken Smith shared an example of a directory of activities to do during a wedding weekend (primarily for attendees not familiar with the area). I recently started a OPML directory of sorts on Oregon elections. Using the drummer.this.how feature from Dave Winer, these directories can be easily reviewed by others. I also recently created a Github repo to collect thoughts on organizing information for use, but it is not in OPML format (although it could be…)

In the early days of OPML, some people were trying to organize podcast directories using OPML files. The idea was that someone could be the maintainer of a directory on a topic, and that file could be included as a folder/directory within a larger directory structure. After playing with the new includes feature in opmlPackage, I started thinking about this again. My impression is that many people who post lists of things do so with the idea of sharing, but the reuse of that sharing is difficult. However, if the list was in an OPML file, this would lend itself to reuse/sharing/remixing. If you had a group of experts who could summarize/curate information/resources for a set of topics in OPML, this could be the basis of a larger work which could be updated at anytime by any of the experts (see Ken Smith’s “Beyond griping” post for more info). As I mentioned in this post, maybe starting a little “beachhead” for experimentation would be in order. Watch this space for more details!

Playing with includes in opmlPackage

This afternoon, I spent some time experimenting with opmlPackage from Dave Winer, focusing on the new feature to include other OPML files within an OPML file. The includes feature is only part of the Node version of the package (other features can be used in a browser). I changed the OPML file that had example includes to use three reading list files that I had in OPML format. I then changed the demo script to add logic to write out the new outline as a file (you can see it in this Gist) and ran it locally on my laptop. Finally, I created another copy of the OPML client to display the new outline (you can see it here). Looks like the includes feature is working fine!

I had a problem today looking at Ken Smith’s activity outline that I posted about on May 30th. When I looked at the page on my laptop, I would get a message saying “This site can’t be reached”. When I looked at the page on my phone on Wi-Fi, I got the same result. When I looked at the page on my phone on mobile data, I was able to see the page. Has anyone else had this problem?