<-- back to the mailing list

Text reflow woes (or: I want bullets back!)y

solderpunk solderpunk at SDF.ORG

Sat Jan 18 21:33:03 GMT 2020

- - - - - - - - - - - - - - - - - - - ```

On Sat, Jan 18, 2020 at 11:20:10AM -0800, Aaron Janse wrote:
> I think we made an oversight: syntax nested within quotes.
> 
> Client:
>  *doesn't know to make quoted link clickable*
>  *doesn't know to fancy-render the quoted list*
> ```

Hmm, I really would not have had any expectation that quoted Geminisyntax would do anything at all.

What sort of context would you expect this to occur in? 
> * Preformatted text toggle lines only need to *start* with three
>   backticks. Specify the significance of text after the backticks.

I think I'm probably fine with this, does anybody have objections? 
> * Specify that preformatted code blocks are intended for content such as
>   ascii art and code, meaning that it should be easily copy-pasteable
>   into a text editor without needed to undergo extra steps to revert it
>   from its displayed form to its original form

Yeah, it might be a good idea to emphasise the intent to preservecopy-and-pastability.

> * Add horizontal rule lines (three+ dashes)

I guess this is harmless.  It feels a bit to me like we're adding itjust because Markdown has it - unlike headings and lists and even,occasionally, quotes, I don't know that I've ever seen a horiozontalrule used in Gopherspace.  But I don't see a good reason to disallow it.

> * Specify that ordered lists MUST use plus sign markers

Yep.

> * Specify Tomasino's nested list system

I think I'm still onboard with this, although I'm starting to wonderabout how these nested lists will look when rendered by a basic clienttreating them as text lines.  I'm not sure it degrades to somethingterribly readable.

> * Explicitly specify markdown syntax that is not allowed.

It feels very strange to me for a syntax specification to explicitlylist stuff from a different syntax specification which isn't allowed.  Ican see it being helpful to point this stuff out in a tutorial forpeople learning text/gemini, but in a formal specification of a markupformat, it goes without saying that anything which isn't explicitlysupported is unsupported.

>   but maybe we could even advise clients to shame this syntax the same
>   way modern web browsers are shaming non-HTTP sites?

Wouldn't doing that (all questions about whether this is appropriatebehaviour aside) require writing code to detect all the stuff that we'renot supporting precisely because it's a pain to write code to reliablydetect it?  Seems counterproductive!

> Regardless, here
>   are some things that I think we should explicitly ban in text/gemini: 
>  ...
>   * Hard-wrapping text

I don't want to explicitly ban hard-wrapped text, I don't see the needto.  I think this syntax actually degrades pretty gracefully when fedhard-wrapped text that is shorter than the viewport, and that's nice.  Ithink the vast majoity of people will end up taking the long lineapproach because it will support a wider range of clients (especiallynarrow screens) and some things will render slightly nicer.  If a smallpercentage want to stick to the old ways for whatever reason, knowingand accepting the downsides, I see no reason not to let them. 
> Are we really limited to a max depth of three? Even if we allow unlimited
> depth of headers and lists, clients would only need to read the first two
> chars of a line to determine its type (unless we add horizontal rules,
> in which case we'd need to read three characters).

Good catch, technically speaking once a line is detected, on the basisof the first three or fewer chars, as a header or list, it can be passedto a function than handles a header line or a list line, and thatfunction has access to the whole line.

That said, maybe we should add a limit anyway.  Otherwise clients haveto write totally generalised code to handle arbitrarily many levels,which could get tricky. 
> Well, worst case scenario, if someone really badly wants comment threads,
> maybe they could use nested quote blocks (assuming we figure that out).

Well, it seems like the 
> syntax generalises in exactly the same way asthe heading and list syntaxes.

Speaking of these...what happens when a client encounters this:



i.e. a bunch of allegedly nested list items which are not emedded in ahigher-level list?

For a simple text-based client which only uses the nestedness level todetermine how many spaces to stick in front of the line, this shouldn'tpost major problems.  But fancy clients planning on doing graphicalthings (I'm actually thinking more about quotes here than list items)might choke if not carefully written.  Should we explicitly requirecorrect nesting?  Or explicitly say clients must be resilient againstweird nesting?

Cheers,Solderpunk