| Gemini takes a while to appreciate. The first step is realizing that it was deliberately designed to be inextensible. Anything that can be extended will accrue bloat. The second step is to realize that it's really just plain text. Once you realize that, the choices about what kinds of formatting make total sense: * bulleted lists, but not hierarchical
* links but they have to be in a paragraph of their own
* preformatted blocks but no italics
* linewrapping but no collapsing of multiple sequential linebreaks
* headings but no boldface
* blockquote with > just like email (*are you listening, @dang?*)
They're the kinds of formatting that impose zero burden on somebody reading through a terminal. In fact, linewrapping is really the only thing you need to do to gemtext to make it readable (versus just "cat foo.gemini"). Rich clients like Lagrange then take this limited set and render it as beautifully as possible on something much more powerful than a VT100.In a way, this is just an extension of the "first step". If you start allowing rich markup, where do you stop? Not allowing anything that would make the markup itself any less readable provides a natural point at which to halt extensibility, for principled reasons. I recently discovered that Lagrange will treat a link to an image as a lazily-loaded inline image -- you have to click the link to make the image appear, but it appears inline where the link had been instead of replacing the page that linked to it. I think this is a really beautiful way to enhance the experience for people reading through a GUI without tempting authors to do anything that would burden people who are reading through a terminal. The only big wart on the whole thing is TLS. It's cute that it solves the TCP truncation problem, but that's a lot of bloat to pay in return. I guess there isn't yet something at Layer 4 that is as minimal, elegant, and battle-tested as wireguard (Layer 3) to take the place of TLS though. |
Interesting. From a modern Web POV a lot of these are backwards, but if you look at it from terminal and other usage it is quite refreshing.