💾 Archived View for stacksmith.flounder.online › gemlog › 2021-10-14.CLI-link-labels.gmi captured on 2023-04-26 at 13:06:44. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-07-16)

-=-=-=-=-=-=-

CLI Link-labels

Here is an idea...

Simple text-mode clients like gmnlm label links within a page as numbers, and allow the user to enter a number to navigate to the corresponding link. The numbering scheme starts anew in each visited page, and the link-numbers are completely local to the page.

What if we continue the tradition of labeling links and offering label-navigation as above, but instead of ephemeral numbers, we assign 'permanent', alphanumeric labels?

The immediate benefit of this is that, in addition to all the links on the current page, you can navigate to any previously-visited site in a few keystrokes! This is a site-local equivalent to the URL shortening services of the big web...

Labeling the links

How long should the link-labels be? As short as possible, obviously. My personal experience is that it's pretty easy to remember four characters, even if you have chicken-memory like I do these days.

Simple math shows that using alpha characters (ignoring case) we have 17576 possible words. Adding numerics, 36^4 yields 1679616 words, enough for a bit of browsing. When that runs out, we can move to a five-character encoding for 60 million more...

User-defined labels

We can reserve one-, two and three-character labels for manual assignment by the user. These are easier to remember...

The user can pick mmemonic 2/3-char labels. If the label is in use the system can allow you to swap the urls...

2-char labels:      1,296
3-char labels:     46,656
4-char labels:  1,679,616
5-char labels: 60,466,176

Persistent Labeling/Bookmarking

Previously I outlined a two-tier Gemini client architecture, consisting of a networking module that handles TLS and server contact, and separate UI clients (browsers, spiders, etc) that deal with user-requested pages and UI.

Perhaps a third component - a Label/bookmark database, which talks to the UI component, is needed. During rendering, the UI client submits links to the database and receives a label. The label can be later resolved to a URL to be fetched. This can be done by the UI client - or the network client (which is written to support 4/5-letter URI shortcuts).

The resolver (named provisionally) can give you a URL when you give it a shortcut, and given a URL locate (or assign a new) shortcut label.

A linear history of sorts

If labels are created sequentially, the result of such an assignment is a history of encountered links. This is useful to 'tour' sites listed in a directory - say the first link is labeled as 'FOOBA', you know that the next one will be 'FOOBB', then 'FOOBC', etc. [Note: handpicked urls break this, so is it a feature or a coincidental artifact which can be useful]

The database will contain every link you've seen (but not necessarily visited). Your bookmarks are a subset of these, and as mentioned before, may be assigned a special, 2 or 3 char label selected by you.

Labels are not immutable

A shortcut/label may be reassigned whenever desired. They exist only for your convenience, and may be deleted. If you don't like the label that was assigned, you can change it to another one, or swap them - for a site you visit often.

Note: LaGrange has ephemeral 1-character labels! Hold down the ALT key to see or navigate...

More to follow...