=== random things i learned about gopher === | |
=== in no particular order or structure. === | |
it's plain text! | |
sites are folder-based. when you go to a folder, the client | |
looks for a gophermap file, which is equivalent to index.html. | |
the gophermap file structure is line-based, just like how most | |
shell utils work line by line over their input. | |
each line in a gophermap is really simple: | |
0caption subfolder localhost 70 | |
|\_____/ | | | / _____/ | | |
\_. |_. | .__| ._/ __/ .__/ ___________| | |
| | | | | / | / | |
tag text tab location tab host tab port | |
"tag" & "text" are joinedtogether. other fields are tab-separated. | |
tag just tells the client what kind of content the the line has. | |
that's it. every line, built up like that, makes a gopher map. | |
some most common tags are: | |
i:simple plaintext. other fields not needed. keep a tab at end. | |
1:this is a link to a folder at specified location[:host:port] | |
i0:this points to textfile. | |
valid tags for different filetypes are already listed on so many | |
places, so i won't repeat them here. | |
[email protected] | |
by the way, the example line above will show the content of | |
subfolder/gophermap at localhost:70 (70 is standard gopher port). | |
+----------------------------------------------------------+ | |
| it seems to me gopher was specifically created to act as | | |
| an index menu for files. so what i'm doing now, writing | | |
| plain text content right inside a gophermap, this could | | |
| well have been illegal, if there were any gopher police. | | |
+----------------------------------------------------------+ | |
i keep a tab at the end of info lines for safety. | |
so don't enable EOL whitespace truncation in your text editor. | |
also keep displayed text lines in gophermap files short. in my | |
experience, lines are truncated at 67 chars. this doesn't apply | |
to linked text files or other types of files obviously. | |
when viewing gopher links, there will be a tag number after the | |
hostname. such as tilde.club/1/~bdeshi. there, see? see that /1/? | |
when linking inside gophermaps, remember that the tag is not part | |
of the actual path. | |
so to link to tilde.club/0/~bdeshi/passwords.txt, i might use these | |
i 0sEcReTs! /0/~bdeshi/passwords.txt tilde.club 70 | |
i 0sEcReTs! /~bdeshi/passwords.txt tilde.club 70 | |
well, i might use either, but only the second one will work | |
sEcReTs! | |
sEcReTs! | |
oh and since this page is already on tilde.club, i don't have to | |
redeclare the host and port. | |
now look, this here is e very interesting feature. you can mark | |
gophermaps as executable, and it will be run through the shell | |
to generate the final content! isn't that amazing? | |
it's definitely among the top six exciting things i've learned | |
today before breakfast!! (tbh i discovered it in the evening, | |
but that's a minor minor non-issue. Anyway...) | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
!! Demo of executable gophermap !! | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
what's also interesting is the enhanced features added to the | |
gopher protocol by the gophernicus server (which is the usual | |
gopher server used in tildes.) | |
but... before talking about that... | |
====<< intermission >>==== | |
look at this drawing i did | |
====<< intermission >>==== | |
ok my short notes on gophernicus | |
are here | |
----------------------------------------------------------------- | |
please do not write below this line | |