Possibly silly text/gemini spec suggestion: Frames
solderpunk
solderpunk at SDF.ORG
Sat May 30 19:13:21 BST 2020
Hey,
Thanks for the suggestion and sorry for the slow response!
Perhaps predictably, I'm not really enthusiastic about this. I
acknowledge that you've tried to limit the complexity of this by
explicitly forbidding the nesting of frames (and thank goodness!), but I
still think this is a substantial increase in complexity compared to
everything else.
Adding this, as it is proposed, would break the principle that has held
so far of text/gemini being parsable and renderable line-by-line in a
single pass with almost no internal state in the parser. A frame-based
solution would require a client to hold the entire document in memory at
once and impose some kind of internal structure on it. I understand
it's supposed to be optional, but I would like it if even a "full
flavoured" renderer which supports all line types is still a pretty
modest undertaking.
This would also, for the first time, make it really possible to produce
non-trivially invalid text/gemini. E.g. a "| " line encountered befeore a
"|||" line makes no sense. People could also easily write, deliberately
or by accident, a text/gemini document which did nest frames in the way
that's not allowed, and clients would need to recognise this and then
decide what to do with it.
So the complications and potential problems this brings along are pretty
substantial, more so than ever other line type so far.
I also appreciate that you've given thought to how this would degrade in
a dumb terminal display. Even if we grant that your suggested layouts
don't look too bad, I worry that people will come up with other layouts
which *do* look confusing.
I guess I'm also not clear what problem this is intended to solve which
couldn't be solved in a simpler way. If this is just suppose to give
text/gemini authors a way to creatively express themselves a bit, then
I guess this isn't really a concern (but I would suggest that there are
probably simpler ways to jazz up a page a bit). But if it's supposed to
make pages easier to navigate, maybe there are other ways to achieve
this? In what I assume is the intended rendering of one of your
examples, the document title remains visible at the top the entire time
as you scroll through the actual content. text/gemini already *has* a
clear and simple way to indicate the title of a document, by putting a
first-level header on the first non-empty line. GUI/TUI clients could
easily extract that title and display it permanently in part of their
layout. Navigation links are less obvious, but I'm not sure what is
wrong with just having them sit, by convention, at the end of a
document. Any decent client should allow the user to hit the End key on
their keyboard and immediately jump down to those links.
Cheers,
Solderpunk
More information about the Gemini
mailing list