Gemini proposal: Frames


I had an idea for a new line type for text/gemini. I'm not sure how warmly
received it will be, but I figure I'd toss it out there.

FRAMES are a way to create collapsible "sections" of a Gemini document. In
graphical browsers I imagine these would be arranged horizontally, but they
would be perfectly readable vertically as well.

||| denotes the start or end of a frame
| (or any non-'|' characters after the first '|') denotes a new frame section
--- denotes a vertical/same section division in a frame section

A very good example of this would be a navigation bar. For example,

# Page Title
|||||||||||||||||
=> ../ Back
=> page1/ Page 1
=> page2/ Page 2
=> page3/ Page 3
| | | | | | | | |
## Article Title
2020-05-28
-----------------

Article contents
...
|||||||||||||||||
Footer text

This is perfectly readable on a dumb terminal display, but on a TUI/GUI browser
it may look something like this:

# Page Title
-----------------------------
=> Back | ## Article Title
=> Page 1 | 2020-05-28
=> Page 2 |------------------
=> Page 3 | Article contents
| ...
-----------------------------
Footer text

The user should be able to collapse the navigation component, if they choose.
They may also choose to display it vertically. Perhaps frame sections consisting
solely of links could also display the links in a line, at the client's
discretion.

This could also be used inline in a standard document, for figures w/ caption
text, poetry next to ASCII art w/ alt-text, etc.

Note that you cannot nest a frame within another frame. This vastly simplifies
the syntax and implementation, as well as discouraging future extensions.

Also, with this example, it may be a better idea to place the links at the *end*
of the document, resulting in a right sidebar. This keeps the navigation from
encroaching onto the document contents in a vertical view. Left sidebars should
be short, sweet, and simple. Another idea for layout:

|||||||||||||||||||||
# Article Title
2020-05-28
| | | | | | | | | | |
=> ../ All
=> next/ Next
=> prev/ Previous
|||||||||||||||||||||
Article contents
...

which could be displayed as

# Article Title | => All
2020-05-28 | => Next
| => Previous
------------------------------
Article contents
...

Let me know what you think of this.