An Almost Anonymous Blog

Updating my blogroll

I expressed the desire to automate updating my blogroll; I first put it together by hand, opening each and every link one-by-one and using a Firefox extension (Copy as Markdown) to easily copy the links. The problem with doing it this way is that whenever I make a change to my blogroll (either adding or removing) I have to go to the page and do this manually.

If I were editing the blogroll on my website I would probably just make a JSON file and use a For Loop to display the links like I do on my NOW page:

<ul> 
{%- for book in currentreads %}
<li><a href="{{ book.url }}">{{ book.title }}</a> by {{ book.author }}</li> 
{% endfor%}
</ul>

But, I host my blogroll on Bearblog...so that's not an option. Back to editing manually1. In an ideal world I'd be able to export a readable list (in Markdown, or otherwise) from Feedly and paste onto my page, but that's not possible. The best option I have, then, is exporting an OPML file. It took me a little while to figure out where to do this in Feedly; you need to click on your face in the bottom left and then click on "Organize feeds". While the "import" link explicitly says "Import", the export button is less obvious; it's what looks like a "reply" arrow.

So that's done, now I have my OPML file. The problem is that it's written in an amalgamation of HTML and XML:

<outline text="News" title="News">
<outline type="rss" text="CBC | Ottawa News" title="CBC | Ottawa News" 
xmlUrl="http://rss.cbc.ca/lineup/canada-ottawa.xml" 
htmlUrl="https://www.cbc.ca/news/canada/ottawa/?cmp=rss"/>
...
</outline>

I tried a copy/paste option here but it didn't work in my test. Either the tags here aren't recognized by browsers or else the Bear free tier restrictions (to cut down on spam) don't allow them. Thinking it through though, I realize now that there's nowhere in those tags that would actually "print" any information. So that test was a waste of time, in retrospect.

So all I did then was just go through my blogroll page and compare against what came out of the OPML file; I re-ordered the list to match the order from the OPML file to make it easier to check against. I manually typed the new entries as markdown links - and since the htmlURL tag has the blog's actual website, I just used that instead of the direct RSS feed. Because some of these blogs have a pretty design, I thought it would be more fun to link directly to them.

So, that's that. I did get some replies to my initial request on Mastodon, so here's one of them:

@jake4480 @srgower @cory Somewhat. It syncs the links against my reader’s OPML endpoint, after which I can edit them further (like, I have a script that tries to set favicons for each site).

I don’t think Feedly does public OPML endpoints, though. You’d need to create an auth token to access them, which I think is a manual action, and then renew it every couple months or so, also manually. Last I checked, at least.

Inoreader, Miniflux, and possibly others have public/basic auth endpoints.

I'll have to look into Inoreader / Miniflux; luckily because of OPML files it's much easier to jump from reader-to-reader vs. jumping Mastodon instances.

Reply by email

Or if you prefer, find me on Mastodon.


  1. Although, it's not like editing a JSON file would be that much easier.

#meta