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.
- mod_include, or simply Options +Includes allows things like <!--#include virtual="/cgi-bin/counter.php" -->
- mod_php (et al) embeds the horror that is the PHP language into source files, via directives like <?php echo "hello my life is hell" ?>.
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:
- Perhaps a template engine like Jinja2 would suffice?
- Or some other "illegal" gmi formatting character unlikely to be used as plaintext.
- Perhaps user-configurable?
Search
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:
Here's a code blog with info hidden from display.
That is, literally:
```ssi_tag
Here's a code blog with info hidden from display.
```
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:
````ssi_tag key=value key2=value2 key3=value3
```
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: