Misc Gopher Projects | |
------------------------------------------------------------ | |
Experiments | |
------------------------------------------------------------ | |
# Asciidoctor text converter | |
2025-01-28: I’m developing an Asciidoctor text converter. | |
The following are text converter tests. | |
Test of plain text converter | |
His Official Fiancée by Berta Ruck (formatting test) | |
Little Brother by Cory Doctorow (another formatting test) | |
# Arduino Gopher server | |
2025-05-15: I’m developing a Gopher server for Arduino. | |
This server may be running on a simulated Arduino while it’s | |
under development, if it’s even available at any given time. | |
My Arduino Gopher server | |
# Web Gopher proxy | |
2025-05-20: I’m developing a Web Gopher proxy. It’s not very | |
pretty or fully functional yet. | |
2025-06-04: It’s prettier and almost fully functional now. | |
I also promoted it to port 80 to officially make it my Web | |
site. | |
Web Gopher proxy (HTTP) | |
Web Gopher proxy (HTTPS) | |
# Miscellaneous experiments | |
These may not play nicely with your Gopher client. Proceed | |
with caution! | |
Time of day | |
Echo | |
------------------------------------------------------------ | |
Gopher tests | |
------------------------------------------------------------ | |
Dir test | |
Link with "h" type (with "URL:" selector) | |
Another link with "h" type (with "URL:" selector) | |
Seems Lynx requires _something_ in the "server" field, even | |
if it's "0" or "null". And Overbite Android requires a | |
non-zero port number. | |
Link with "h" type (with obsolete "GET /" selector) | |
Another link with "h" type (with obsolete "GET /" selector) | |
Lynx supports this. Other clients may or may not. | |
Link with "w" type (with a plain URL selector) | |
Another link with "w" type (with a plain URL selector) | |
Seems Bombadillo, w3m and Lynx don't support the "w" type. | |
Mail link with "h" type | |
Bombadillo doesn't support mailto: URLs (it can't handle | |
email anyway). w3m and Lynx seem to handle this fine. (w3m | |
fetches the HTML redirect page, but the email address can be | |
selected from that page.) | |
Gopher client tests (URLs) | |
Gopher client tests (selectors) | |
/%09 selector | |
/%20 selector | |
/%25 selector | |
/%2525 selector | |
Lagrange has a bug with "%25" in a selector. | |
See Issue #728 | |
/hash#file selector | |
Gopher menu test | |
------------------------------------------------------------ | |
Link formatting experiments | |
------------------------------------------------------------ | |
I’m considering tweaking the link layout/format generated by | |
my Asciidoctor text converter. Here’s a few options. | |
# Option 1. Inline links | |
I’ve seen this style on one Gopher hole, and I found it | |
quite interesting. | |
This is a test of ›inline links‹. Here's | |
›another link‹. It starts on another line because Gopher | |
can't do two links on a single line. | |
# Option 2. Semi-inline links | |
This is a variation of option 1, placing each link on a line | |
of its own. | |
This is a test of | |
semi-inline links | |
. Here's | |
another link | |
. | |
# Option 3. References with links below paragraph | |
I’ve seen this on one Gopher hole. It’s pretty nice too. | |
This is a test of link references[1] with links below the | |
paragraph. Here's another link reference[2]. | |
[1] | |
[2] | |
# Option 4. References with links at end of page | |
This is a test of link references[1] with links at the end | |
of the page. Here’s another link reference[2]. | |
All links are under <<References>> at the end of the page. | |
* * * | |
Currently pages are converted using option 4. | |
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | |
NOTE : The converter doesn’t currently create | |
: actual Gopher links but a plain text list | |
: of URLs (I’m manually formatting all links | |
: on this page for demonstration purposes). | |
: This is because I initially wrote the | |
: converter to generate plain text files. I’m | |
: looking into generating a gopher map (using | |
: the plain text converter as a base) which | |
: shouldn’t be too difficult. | |
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | |
Option 1 looks nice, but it may be a challenge to implement | |
(with proper indentation and line-wrapping, especially when | |
there are two or more links in a line). | |
Option 2 looks so-so, and it may also be a challenge | |
(similar issues as option 1). The reward:effort ratio of | |
this option looks too low to me. | |
Option 3 still looks nice (almost as nice as option 1 or | |
nicer in some ways, and definitely nicer than option 2) and | |
should be fairly easy to implement. In fact it’s probably a | |
small tweak to the current link formatting (option 4). | |
In option 3 and 4 each link in the list may also include the | |
URL like so: | |
[1] gopher://asciz.com:70/1/projects/gopher/misc | |
[2] gopher://asciz.com:70/1/projects/gopher | |
Or they may include the link text like so: | |
[1] link references | |
[2] another link reference | |
Then again, I’m kind of leaning against formatting documents | |
as gopher menus. My menus so far (except for this one) are | |
all basic lists of links (i.e., the sort of thing you expect | |
to see in Gopher) with some info text above/below some of | |
the links and some headings and ASCII art sprinkled in, so I | |
may just leave my converter alone (of course, even in plain | |
text files I can still move reference lists to below the | |
paragraphs links appear in, as in option 3, and I might do | |
that). | |
In my menus I currently use passthrough blocks to insert GPH | |
links (I’m using the geomyidae GPH gopher map format), and | |
they are easy enough to maintain. A passthrough block looks | |
something like this: | |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
++++ | |
[1|Link to current page|.|server|port] | |
[1|Home||server|port] | |
++++ | |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
A passthrough block makes sense because it’s intended to | |
pass through whatever is inside it uninterpreted to the | |
generated output, which is what we want. | |
That block produces Gopher links like this (after it passes | |
through the GPH filter): | |
Link to current page | |
Home | |
------------------------------------------------------------ | |
References | |
------------------------------------------------------------ | |
(NB. This is for option 3.) | |
[1] | |
[2] |