Introducing: spa, a Whinam browser for the Spartan Protocol
So far It is a pathetically primitive terminal viewer, but the interesting thing about it is its use of sigils, 4-letter persistent mnemonics for Spartan URLs. 4 alphanumeric (caps only, no 'O','I','0' or '1') characters provide 20 bits, or 1 million+ URLs, plenty for Spartan.
https://tildegit.org/stack/spa
Sigils
Sigils are useful as site-local shortcuts, easily-remembered for often-used destinations, are easy to type, and form a basis for a bookmarking/logging database that helps you deal with interesting URLs.
Many browsers (especially text mode ones) provide a numeric shortcut for each URL. A sigil is just a couple of keystrokes more. Sigils are persistent (you can browse to a sigil now or next year), and the ones you use often will be memorized by osmosis.
I am not yet sure if sigils are a great idea, or a dumb one. If I like them, I will probably put together a Gemini requestor (I would have to deal with certificates, ugh).
Modularity
I am also experimenting with a modular environment. There is a separation between the network requestor, the URL database, the rendering engine and the (not yet implemented) scroller-pager environment.
Practical HorseWare
spa is built around the principles of Whinam software: an immutable log with indices. It is a work in progress, but if you are curious to play with a sigiled environment and see the handful of existing Spartan sites in your terminal, give it a shot. I will write more about the architecture of spa and other horseware in the Whinam folder.
gemini://gemini.ctrl-c.club/~stack/whinam/index.gmi
A Taste of Spa
This is what it looks like (if your Gemini browser supports ANSI color) at this moment. Looking at `spartan://mozz.us`. You navigate by specifying a URL or a sigil (rendered in orange).
I plan to add one/two-digit page-local shortcuts, and 3-character user-chosen sigils for really special sites...
Colors (and everything else, really) are provisional and will be fine-tuned (and made user-selectable) later. And yes, I am not handling the new =: links yet, as I am still contemplating what that means.