---
title: "How to implement ENT into your Radio RSS feed"
date: 2003-05-27
author: "Richard MacManus"
categories:
  - name: "ReadWriteWeb"
    url: "/category/readwriteweb.md"
tags:
  - name: "2003"
    url: "/tag/2003.md"
---

# How to implement ENT into your Radio RSS feed

After a few late nights, I’ve successfully implemented [Easy News Topics (ENT)](https://web.archive.org/web/20040306095347/http://matt.blogs.it/specs/ENT/1.0/) tags to my Radio Userland RSS feed. It wasn’t as easy as I thought it would be. It involved rooting around in the Radio.root file of my weblog and upskilling myself in [UserTalk](https://web.archive.org/web/20040306095347/http://frontier.userland.com/manual/userTalk), Radio Userland’s scripting language. But mostly I stood on the shoulders of giants to get this done – [Dave Winer](https://web.archive.org/web/20040306095347/http://www.scripting.com/) and [Matt Mower](https://web.archive.org/web/20040306095347/http://matt.blogs.it/) in particular.

ENT is an extension of the [RSS2.0 spec](https://web.archive.org/web/20040306095347/http://backend.userland.com/rss). Its aim is to enable categorization of RSS items into topics. After reading about ENT and [writing one of my first articles](https://web.archive.org/web/20040306095347/http://radio.weblogs.com/0105304/2003/04/28.html#a3) about RSS topics, I decided I wanted to actually implement ENT into my weblog. After some initial searching, I came across an article by Dave Winer called [“How to extend Radio’s RSS generator”](https://web.archive.org/web/20040306095347/http://backend.userland.com/stories/storyReader$210). This introduced me to 3 new “callbacks” which enable Radio developers to modify their RSS feeds. The callbacks are: writeRssNamespace, writeRssChannelElement, writeRssItemElement. The first one I successfully implemented was the namespace. I did this as follows:

1\. Open up your Radio.root file.2. Drill down to user.radio.callbacks.3. Double-click on writeRssNamespace, then re-name “item #1” to “ent”.4. Enter the script [linked](/web/20040306095347/http://www.readwriteweb.com:80/0105304/images/screenshot_ent1.jpg)[ here](/web/20040306095347/http://www.readwriteweb.com:80/0105304/images/screenshot_ent1.jpg).5. Click “Compile”.

That was relatively easy. Implementing the item elements turned out to be trickier – particularly as the elements have attributes and are nested. It took me a while to get to grips with the UserTalk syntax, not being a programmer by trade. I bumbled around a bit and got to a stage where I juuuust about had the script right. Then I happened upon [Matt Mower’s conversation with Dave Winer](https://web.archive.org/web/20040306095347/http://groups.yahoo.com/group/radio-dev/message/7752) and finally things fell into place. [Here now is my code](/web/20040306095347/http://www.readwriteweb.com:80/0105304/images/screenshot_ent2.jpg) for the writeRssItemElement script – same process as above.

But wait, there’s more. Because the ENT tags are nested, there is one more piece of scripting you need to do – modify writeRssFile. But luckily Matt Mower, one of the authors of ENT, has already done the work – [right-click here to download the script](https://web.archive.org/web/20040306095347/http://matt.blogs.it/gems/workspace.writeRssFile.ftsc). Open this in your Radio app, and it will automatically save itself in the workspace area of Radio.root. Then you need to copy it across to the following location:**system.verbs.builtins.radio.weblog.writeRssfile**

btw as a sidenote, writeRssfile is just one of many very clever scripts built-in to Radio. It’s amazing how much data there is in Radio.root, once you have a good poke around. It’s a testament to the amount of work Dave Winer must have put in to build Radio Userland, so I do sympathise with his recent posts about software developers [gettin’ paid](https://web.archive.org/web/20040306095347/http://scriptingnews.userland.com/2003/05/26#whoWillPayPart2).

Anyway that’s basically it for stage 1 of implementing ENT into my Radio RSS feed. Stage 2 is to actually put some worthwhile data into my topic tags – currently I’ve just got dummy data in there. Ideally I want to dynamically generate a topic word or phrase for each weblog post, based on the contents of the post and/or the title. But I guess this is where [k-collector](https://web.archive.org/web/20040306095347/http://k-collector.evectors.it/) comes in. So that’s my next project, to find out about k-collector and put some meaningful data into my shiny new ENT tags 🙂

*Originally published on ReadWriteWeb ([archived copy](https://web.archive.org/web/20020204040018/http://www.readwriteweb.com/2003/05/27.html#a41))*