Gemini Project ideas

▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

Server Side Includes

Apache supports a handful of ways to do simple server-side operations within HTML, without needing a whole separate daemon and reverse proxy. Some of these are decent ideas for small websites, which essentially all gemini capsules are on par with.

Using one of the python servers (Jetforce seems solid enough) it should be possible to preprocess all .gmi files to do on-the-fly replacement or transclusion of content. Ideas:

The existing Gemini search engines remind me of the early 90s web search: full of broken links, not great search ranking, and pages and pages to dig through to find the thing you want. I feel like with how lightweight the protocol is, there's not really a good reason for it. A search engine with decent bandwidth could, for instance, check server status once a day, even using the standard bookmark subscription mechanisms. Track how long something has been offline, and after some threshold start punting it down the search results. Then, after some other threshold, remove it from the index.

CGI-Bin

I'm currently running agate (simply due to it being easy; see server exeriments for details. But several claim the ability to run cgi-bin scripts, and I'd like to do some silly early web stuff, like guestbooks. Or even work out a clean way to add 'comments' to my glog posts, something that should be achievable with a single link added to collect comments and a server-side-include to present those comments.

Server Experiments

I wonder if somebody's already done this? But I'm guessing not with Pelican in particular.

Scratch pad

Testing some formatting things to fact-find for above ideas.

\* what's this? *\

?

# Level 4 heading?

This prints as "# Level 4 heading?" but using level 3 heading format.

<html tag> is just treated as plaintext, as expected.

Too many backticks:

That is, literally:

That means one-line directives surrounded by some number of backticks could work? If a .gmi contains such a directive and the server fails to execute it, it at least wouldn't be visible in rendered mode. On Lagrange, at least. That would make it nearly trivial to add so a static glog generator; add that to the bottom, with any k/v pairs you want to pass through to the cgi-bin, e.g. for associating comments in a glog-comments system with a specific page or url.

Another idea:

<start>

<finish>

Between those two fake tags is a non-displayed directive capable of passing data to something included or a function call. The format is, literally:

This could be viable; the whole point is just to avoid disrupting pages using this approach too badly if the server fails to remove it for some reason.

It can't quite be done on a single line, but anything on the initial line isn't displayed. Much like closing a <?php tag, it's sort-of optional if it is at the end of a file, but failing to do so results in this effect:

Proxied content from gemini://gdorn.circuitlocution.com/gemini/gemini_projects.gmi (external content)

Gemini request details:

Original URL
gemini://gdorn.circuitlocution.com/gemini/gemini_projects.gmi
Status code
Success
Meta
text/gemini; lang=en
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.