[gopher] Proposal for a gopher++ TITLE resource

Kim Holviala kim at holviala.com
Thu Apr 1 11:43:02 UTC 2010


A proposal for a method to include titles in gopher++ menus
===========================================================

1. The problem

Gopher0 (RFC 1436) menus have no titles. When one is browsing around the 
gopherspace this make no difference, but it is a big problem for 
bookmarking and for automated crawlers like Veronica-2.


2. Gopher++ TITLE resource definition

A TITLE resource in a gopher++ menu is defined as follows:

    type      - "i"         (without quotes)
    name      - the actual text of the title
    selector  - "TITLE"     (without quotes)
    host,port - dummy values

A TITLE resource is identical to a regular info resource, only the 
selector is set to a specific string, "TITLE".

An example of a TITLE resource:
iTitle for this Gopher resource<TAB>TITLE<TAB>dummy.host<TAB>0


3. Conforming client requirements

Conforming clients will use the first info resource with the word 
"TITLE" in the selector as the title of the menu. All following TITLE 
resources should be ignored.

Non-conforming clients will see a normal info resource and present it as 
normal informational text. This provides near-perfect backwards 
compatibility.


4. Conforming server requirements

Conforming server may include a TITLE resource as the first line of any 
menu it provides to the client. A server should not send more than one 
TITLE resource as a conforming client will ignore all but the first one.


5. Compatibility

The TITLE resource described here should be fully backwards compatible 
with both old gopher servers and clients.

If an non-conforming server supports gophermaps, it's possible for an 
author to include TITLE resources even if the server doesn't 
specifically support them.

If a non-conforming client receives a TITLE resouce, it will simply 
render it as informational text. As the TITLE should be on the first 
line of any menu it will look like a title to the user even if the 
client doesn't specifically render it as such.


6. Example code

The Gophernicus Server version 0.5-beta (and later) automatically 
inserts TITLE resources for all menus where a gophermap doesn't exist. 
There is also a patch for the NSCA Mosaic 2.7ck8 gopher client which 
adds support for parsing & rendering the TITLE resources.

gopher://gophernicus.org/1/software/gophernicus/server/
gopher://gophernicus.org/1/software/patches/gopher++/









More information about the Gopher-Project mailing list