Clarification of current spec
Sean Conner sean at conman.org
Thu Sep 19 06:45:39 BST 2019
It was thus said that the Great Brian Evans once stated:
> Hi all,
>
> I have finally gotten around to implementing a client. I had been
> rebuilding Bombadillo (my gopher client) and so I have added preliminary
> gemini support to it. That consists of single digit response code
> awareness. Support for status 2 and 3 and errors shown in a sensible way
> for 4 - 6. I have not implemented 1 yet.
>
> While building all of this out I have been using existing servers for
> testing. It seems that there is a good amount of variation, particularly
> concerning tabs and spaces.
>
> I am wanting clarity on whether this is correct:
> <two digit status number><space><meta>
>
> or this is correct:
> <two digit status number><tab><meta>
Hmmm. I tested the Gemini servers I am aware of [1], and all but one use
<two digit status><tab><meta>
The one that doesn't is the server at gemini://zaibatsu.circumlunar.space/,
run by solderpunk, creator of the Gemini protocol, so it's hard to say who
is correct---him, or the rest of the implementations. The spec is ... not
detailed enough (for my liking) to resolve this. Your best bet for now is
to support both space and tab.
> The same question applies to gemini docs. My understanding was that this
> is correct:
>
> <magic string><url><space><...text>
>
> However, I am seeing tab instead of space in the wild.
The spec (at the address you listed below) says this:
1.3.5.2 Link syntax
Link lines have the following format:
=>[<whitespace>]<URL>[<whitespace><USER-FRIENDLY LINK NAME>]<CR><LF>
where:
* <whitespace> is any *non-zero number* of consecutive spaces or tabs
* Square brackets indicate that the enclosed content is optional.
* <URL> is a URL, which may be absolute or relative. If the URL
does not include a scheme, a scheme of gemini:// is implied.
(emphasis added)
So whitespace here can include both spaces and tabs.
> Is this just a simple matter of different servers conforming to different
> stages of the development spec? Should my client support both? It is
> certainly doable, but a little annoying.
> Lastly, is the spec as written at:
> gopher://zaibatsu.circumlunar.space:70/0/~solderpunk/gemini/spec-spec.txt
> being kept up to date as things get decided? Or should that document be
> considered out of date at this point pending a new writeup?
It is marked as a work in progress (WIP) so I assume it's kept up to date.
Having written the first Gemini server, I've noticed changes as the protocol
was being hashed out.
-spc
[1] Listed at gemini://gemini.conman.org/
Archive home | About this archive