|
|
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 (gopher.floodgap.com) |
|
|
 |
External relative link (which shouldn't work) (gopher.domain.dom) |
|
|
 |
Finger-to-gopher link (example.test) |
text/plain |
|
 |
Link to a website (http://www.google.com) |
|
|
|
|
|
|
 |
Link to a local html page |
text/html |
|
 |
Link to an tar archive |
application/octet-stream |
|
|
|
|
|
|
8Telnetsh: 1: LICENSE: not found |
|
|
 |
session (example.test) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List all available virtual hosts: |
|
|
|
|
|
|
|
Include sub-gophermap: |
|
|
|
|
|
|
|
Execute script and parse output as subgophermap: |
|
|
|
16:06:18 up 110 days, 23:02, 342 users, load average: 1.64, 1.75, 1.82 |
|
|
|
|
|
|
|
Here we stop processing the gophermap and include the regular menu: |
|
|
 |
.. |
|
|
|
____________________________________________________________________________ |
|
|
|
Gophered by Gophernicus/3.0.1 on Ubuntu/22.04 x86_64 |
|