2018-11-27 Gopher Module

@jynx mentioned a Gopher Atom feed again, and in fact he has had such a feed for his site for quite some time. And now I’m thinking of a gopher module for RSS 2.0 and I started writing up a specification.

I’m adding it to this wiki right now!

If you want to do the same, take a look at the code that generates your feed. Your feed is either a RSS feed, in which case it starts with an rss element, or it’s an Atom feed, in which case it starts with a feed element.

Basically you want to add the following:

xmlns:gopher="https://communitywiki.org/wiki/Gopher_Module_1.0"

Here’s an example from my site, using RSS 2.0. This is how my feed begins:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="https://alexschroeder.ch/css/alex-2018.css" ?>
<rss version="2.0"
    xmlns:gopher="https://communitywiki.org/wiki/Gopher_Module_1.0"
    xmlns:wiki="http://purl.org/rss/1.0/modules/wiki/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:cc="http://web.resource.org/cc/"
    xmlns:atom="http://www.w3.org/2005/Atom">

The feed contains a channel element which remains unchanged and a bunch of item elements. These get a new link element with the “gopher” prefix I just defined.

Here’s an example from my feed:

<item>
<title>Gopher Module</title>
<link>https://alexschroeder.ch/wiki/2018-11-27_Gopher_Module</link>
<gopher:link>gopher://alexschroeder.ch/12018-11-27_Gopher_Module/menu</gopher:link>
<guid>https://alexschroeder.ch/wiki/2018-11-27_Gopher_Module</guid>
<description>I'm thinking of a gopher module for RSS 2.0 and I started writing up a specification...</description>
<pubDate>Tue, 27 Nov 2018 19:30:08 GMT</pubDate>
<comments>https://alexschroeder.ch/wiki/Comments_on_2018-11-27_Gopher_Module</comments>
<dc:contributor>Alex Schroeder</dc:contributor>
<wiki:status>updated</wiki:status>
<wiki:importance>major</wiki:importance>
<wiki:version>2</wiki:version>
<wiki:history>https://alexschroeder.ch/wiki?action=history;id=2018-11-27_Gopher_Module</wiki:history>
<wiki:diff>https://alexschroeder.ch/wiki?action=browse;diff=1;id=2018-11-27_Gopher_Module</wiki:diff>
<category>Gopher</category>
</item>

Now, if you have an Atom feed, it’s very similar. This time I’m going to use @jynx’s feed as an example.

First, he had to add the namespace to the root element. This is how his feed starts:

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
      xmlns:gopher="https://communitywiki.org/wiki/Gopher_Module_1.0">

And Atom feeds also have a list of items in their feed but now we’re looking for the element called entry. See how he added the gopher link:

<entry>
<title># No days off for you </title>
<id>tag:leveck.us,2017-08-10:/phlog/20170810.post</id>
<author><name>Mr. Leveck</name><email>leveck@leveck.us</email></author>
<link rel="alternate" type="text/plain" href="gopher://leveck.us/0/Phlog/20170810.post" />
<gopher:link href="gopher://leveck.us/0/Phlog/20170810.post" />
<updated>2017-08-10T00:00:00Z</updated>
<content type="text">
<![CDATA[<pre># No days off for you 

Working a day off today... 74 hours last week, 54 this week, then four days off. I am damn ready to not wake up at 0335.
</pre>]]>
</content>
</entry>

Obviously in his case there’s little incentive to actually use the gopher module as his site doesn’t have any web links! But still, this is how it would work.

Tags:

Comments

In a later discussion, @tomasino convinced me, that this was unnecessary: why mix web links and gopher links? If you’re a web person, you want the web links and the HTML content; if you’re a gopher person, you want the gopher links and the text content.

– Alex Schroeder 2018-11-30 21:32 UTC


Please make sure you contribute only your own work, or work licensed under the GNU Free Documentation License. Note: in order to facilitate peer review and fight vandalism, we will store your IP number for a number of days. See Privacy Policy for more information. See Info for text formatting rules. You can edit the comment page if you need to fix typos. You can subscribe to new comments by email without leaving a comment.

To save this page you must answer this question:

Please say HELLO.