Sample gophermap for Gophernicus Creating a file called "gophermap" into a directory disables the normal resource listing and replaces it with the contents of the map file. You can also have inline gophermaps - files with a ".gophermap" extension are parsed as gophermaps and displayed in between normal resources in alphabetical order. In a gophermap any line that doesn't contain a <TAB> character is automatically converted to an type "i" gopher resource which are displayed as plain text in the client. Lines which contain tabs are intepreted as gopher resource lines which the client will render as links. The first line of a gophermap should be a !Title line describing the menu. Dynamic gophermaps are possible by making the gophermap a script and marking it as executable. All script output is parsed just like a static gophermap, for example lines without tabs are converted to "i" resources. Executable gophermaps are always ran through the default shell (/bin/sh) so depending on your operating system that's either slow, or really unbearably slow... The format of a gophermap resource line is simple: Xname<TAB>selector<TAB>host<TAB>port Where: X is the gopher filetype name is an explanation of the resource selector is the path to resource host:port are the hostname and port number to go to Type and name are mandatory. If you don't specify a selector, the name field will be also used as the selector. If you don't specify host or port the host:port of the current server are used instead. Also make sure to use ONLY ONE TAB between the fields. Valid filetypes include: 0 text file 1 directory 3 error message 5 archive file (zip, tar etc) 7 search query 8 telnet session 9 binary file g GIF image h HTML file i info text I generic image file (other than GIF) d document file (ps, pdf, doc etc) s sound file ; video file c calendar file M MIME file (mbox, emails etc) Additional type characters supported by Gophernicus: # comment - rest of the line is ignored !title menu title (use on the first line) -file hide file from listings :ext=type change filetype (for this directory only) ~ include a list of users with valid ~/public_gopher % include a list of available virtual hosts =mapfile include or execute other gophermap * stop processing gophermap, include file listing . stop processing gophermap (default) Examples of valid resource lines: 1subdir DIR Relative internal link DIR Absolute internal link DIR External link DIR External relative link (which shouldn't work) TEXT Finger-to-gopher link HTML Link to a website HTML Link to a local html page DOS Link to an tar archive tilde.team:70 /~grif/sample/:79: invalid line / field count