TLDR: I did not mean to write another anti-Gemini rant... I am really happy for our little network's existence, and I use Gemini pretty much exclusively, hardly ever hitting http servers. It's just so ****ing annoying sometimes!
The author of
=> Spartan Should Not Use text/gemini
correctly points out that the spartan-flavored-gemtext is different enough from normal gemtext to have a different mime type.
First of all what is the =: prompt? It looks just like a => line syntactically, but clicking on it brings up a text-input field which is sent to the url on completion.
This is a wonderful thing as it eliminates a dumb-ass round-trip in Gemini. Every input field in Gemini needs an extra exchange with the server. The first one with no data gets an 'I need data' response which pops up an input field; the second one, with data, actually submits that data. Multiply by rounds of tcp handshaking and key exchange/verification, and you have a bit of useless traffic here.
That is just so stupid that my head hurts. But I suppose Gemini was conceived for static blogs, and any sort of response or uploading is greatly discouraged in gemtext.
A pet peeve: while there are only a handful of kinds of lines in gemtext, each one is designated in a uniquely different and confusing way: one, two, or three starting characters; there may or may not be a space after such character(s); and there is a global mode for block quotes. There are basically 6 things, and each one is a little different, making it just friggin' annoying to write a state machine.
Contrast it with Gopher, where the first character definitively provides the context for the rest of the data. Gemini was supposed to be a 'better gopher', right? So why can't I just read the first character dispatch on it? Does 'modern' need to be synonymous with 'stupidly convoluted'?
Here is a gopher/gemtext-like format, in which the first character on each line defines the type of the line:
@... link >... quote #... headings (may be followed by more # for multilevel) *... list item (may be folloed by more * for deeper indent)
maybe = for an =: input field, because I like it.
or any other unused character: normal text;
initial space may be undisplayed if indented paragraphs turn you off.
text/gemini
This content has been proxied by September (3851b).