| 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 | |
| Relative internal link | |
| Absolute internal link | |
| External link | |
| External relative link (which shouldn't work) | |
| Finger-to-gopher link | |
| Link to a website | |
| Link to a local html page | |
| Link to an tar archive | |
| Telnetsh: 1: LICENSE: not found | |
| session | |
| List all available virtual hosts: | |
| Include sub-gophermap: | |
| Execute script and parse output as subgophermap: | |
| 23:44:18 up 197 days, 4:37, 443 users, load average: 7.48, 6.77, 6.81 | |
| Here we stop processing the gophermap and include the regular menu: | |
| .. | |
| ____________________________________________________________________________ | |
| Gophered by Gophernicus/3.0.1 on Ubuntu/22.04 x86_64 |