πΎ Archived View for bbs.geminispace.org βΊ u βΊ mbays βΊ 1545 captured on 2023-11-14 at 10:39:58. Gemini links have been rewritten to link to archived content
β¬ οΈ Previous capture (2023-11-04)
β‘οΈ Next capture (2023-12-28)
-=-=-=-=-=-=-
Re: "ANSI formatting What do you think of the use of ANSI..."
@jeang3nie That's a good point about syntax highlighting code blocks -- I think that's better than abusing the alttext line to indicate the language so the client can do highlighting, as has been suggested.
Jun 04 Β· 5 months ago
1. ANSI formatting is neat and should be considered part of gemtext. Clients should support it.
ββββββββββββββββββββββββ 13%
2. ANSI formatting is awkward but we don't need to ban it... servers can send it and clients may display it, but they shouldn't be expected to.
ββββββββββββββββββββββββ 50%
3. Like option 2, but it should only be tolerated within preformatted text; elsewhere clients SHOULD strip all ANSI escape codes.
ββββββββββββββββββββββββ 21%
4. ANSI formatting is an abomination, and should be explicitly disallowed in the spec. Real gemtext does not contain any such escape codes, and clients should of course strip any they find.
ββββββββββββββββββββββββ 13%
5. Other, see comment.
ββββββββββββββββββββββββ 3%
38 votes were cast.
π Addison Β· Jun 04 at 18:38:
Rosy Crow converts everything to HTML/CSS under the hood, so this shouldn't be too difficult to implement. Now I have another excuse to procrastinate on adding Titan support. π
π¦ jeang3nie Β· Jun 04 at 20:33:
@mbays it's one of the few things that I miss from blogging on the big web using Markdown. What I find interesting is that the alt text a we know it in Gemtext is used for precisely that in CommonMark - relaying to the renderer that this block should be rendered as code. I agree that this shouldn't be done in Gemtext though, because that bit of info should be reserved for those using screen readers with ansi art.
I'm not even sure it's something that I'll ever get around to implementing, but it has been in the back of my brain for a long time. I have some idea how I could automate adding all of those escapes when building the capsule already, just too many projects going at once.
π€ emilis Β· Jun 04 at 20:49:
The colours you added to the word βcolourβ made it hard to read, therefore I would like for my browser to strip them.
Iβm not sure about syntax highlighting case too, because the author canβt control the background that a browser/terminal is providing. It is hard to find colors that work on both light and dark backgrounds and most authors falsely assume everyone is using their mode of choice. I notice this quite often, because I use a light terminal background.
I want to be able to use it in some of my notes, but I haven't been able to get it to display in amfora.
π lufte Β· Jun 05 at 15:42:
I don't like it. I don't think it should be banned because then we would have to explicitely ban countless formats being thrown in preformatted blocks but I don't think clients should be forced to process them. It breaks accesibility and my choice of having any background color I like.
π mbays Β· Jun 05 at 17:36:
@emilis @lufte re background colour: a terminal client could be more clever about how it renders ANSI-coloured text than just passing the escape codes through to the terminal, it could munge them to account for a configured background colour. @lufte: Banning it (prohibiting it in the spec) would be straightforward, and I don't think there's any slippery slope there. It's certainly the cleanest option. I'm surprised there isn't more support for it in the poll...
π lufte Β· Jun 05 at 18:36:
@mbays I think I understood option 4 as "Ban capsule owners from writing special codes in their document" instead of "force clients to not do any special handling with the text in pre blocks", which makes more sense. In that case I'm all for option 4.
π skyjake Β· Jun 05 at 20:36:
@mbays I agree it's SGR that makes most sense here, but I think because actually adding support for these codes is highly implementation dependent (for instance, can be much easier for a TUI app), there should be no common baseline of expected support. The only common denominator should be that clients strip out the sequences, if they can't parse and apply them properly.
But IMO even that is too complicated a requirement for implementing a Gemtext parser. My speccing suggestion is to simply not pass control characters like <ESC> through to disable these sequences, even when the client just dumps the source to a terminal.
Allowing SGR in preformatted blocks makes some sense because there one might reasonably expect a client to take the part of the source between the ``` markers and show it as-is (inside a terminal emulator).
The way GUI clients would render the codes depends greatly on the underlying display method. A web view has powerful CSS styling features, so once you parse the sequence, you can display it easily. Other GUI controls might be more limited in what they can render. In any case, the client would have to be smart about the presentation, by choosing colors and fonts that remain legible.
It's all a surprising amount of complexity when implemented properly, however I think it's still compatible with the idea that the client is empowered to present the Gemtext source as it sees fit.
β freezr Β· Jun 05 at 23:41:
I believed this topic was already settled down, and we eventually agreed it was a bad idea especially because text-readers read the full text...
π mbays Β· Jun 06 at 23:01:
@skyjake Right yes, it's best to have the baseline behaviour lead to something unreadable when escape sequences are used, discouraging their use except in dynamic systems where the user has specifically opted in to receiving them.
That doesn't mean we can just leave optional use of escape sequences unspecced and let conventions around them build up, because that's a definite loophole for extending the capabilities of gemini. So I think we have to tightly constrain what's permitted. Hopefully Solderpunk will pronounce on it one day.
π totroptof Β· Jun 25 at 01:17:
There is a π₯π¦ π§π’π€π΅π° standard ANSI sequence that provides a little bit more utility than SGR: VTE ([and a bunch of other terminals]) support inline hyperlinks with OSC 8. Thereβs a [rough spec] available as a Github Gist. Iβm not sure how widely used it is, but I have noticed GCC using it to link to documentation about warnings (for example).
Iβm not really advocating that ANSI sequences in general and OSC 8 in particular be widely adopted so we can have inline links, I just thought I would mention it because itβs kinda neat (and it tickles that βhow can I exploit this to do something interestingβ itch π).
β and a bunch of other terminals
π mbays Β· Jun 25 at 07:50:
@totroptof Oof... thanks. That's a serious extensibility hole which I wasn't aware of at all. OK, so this is a great argument for making sure terminal gemini clients strip out most (at least all non-CSI) escape sequences, and for having the spec tightly constrain which, if any, sequences may not be stripped.
By the way, after the discussion in this thread, I tweaked how my terminal client diohsc handles this: as of the next version, escape characters in gemtext are filtered out except where they introduce CSI sequences ('[') within a preformatted block.
ANSI formatting What do you think of the use of ANSI formatting (for [31mc[32mo[33ml[34mo[35mu[36mr[0m and [1memphasis[0m) in gemtext? This is one of those cases where the current spec is silent. A tradition of using these escape sequences in certain circumstances has built up, popularised (and pioneered?) by Astrobotany, and later Wordo. It worked with some terminal clients just because they didn't think to strip the escape codes, and some graphical clients (Lagrange at least) then...
π¬ mbays Β· 19 comments Β· 1 like Β· Jun 04 Β· 5 months ago Β· π³οΈ