free software resistance
the cost of computing freedom is eternal vigilance
### a-simple-alternative-to-websites-and-gemini
*originally posted:* jan 2025
when i talk about a simple alternative to gemini, i say it as a fan of gemini- and especially a fan of gemtext. i think gemtext is one of the greatest inventions of this century. which is sort of funny because its such a 90s throwback. but then, thats part of its charm.
i was a fan of the gopher protocol too, i even made a client or two for it. i ran a gopher server years ago. but i vastly prefer gemtext.
i prefer gemtext to html, thats why this page is written that way. but if i was going to steal part of gemini, it would have to be the links:
```
=> i-freaking-love-these-things
```
that link doesnt actually link to anything. i mean if there was a page called i-freaking-love-these-things it would link to that, but i havent made one.
she version 2.0 likes links like that too, and though i havent made it load online resources (im not even sure i want to, really) someone could fork it and do that. there are a few ways i could accomplish the same, but this brings it back to the fact that i dont want to at this time. at any rate, thats besides the point of this idea. i mean yes, an online version would be a cool thing too- but lets talk about what websites and gemini are for, at least in their earliest incarnations.
gemini does text- it does text really well, and text with hyperlinks was the point of early html and its the point of gemini.
so you create a document, you create a page- and you put gemlinks or anchor tags on that page, to link to other pages. they might be pages on other websites, or other pages from the same resource. and they can be "offline websites", similar to help pages with hyperlinks from years before the web.
ive seen lots of offline websites. and offline wikis. and various things like them.
this sort of thing has fascinated me since i was a dos programmer. in fact before i moved away from windows, i replaced my start menu with a mouse-capable dos program that let you make links to other files just by putting the filename in double brackets [[like_that]]. any text could become a link with just four brackets. because i thought wiki syntax was the coolest- way cooler than html.
and i know, wiki never became standard. i even had my own version, if you added an asterisk to the filename it wouldnt do globbing, it would run the file as a script instead of loading it as a text file. and so i found this more useful than a start menu.
when i moved to another os, i did port my wiki/shell program. i didnt really use it much though, and within a couple of years from the move i also learned python. this wasnt long after learning javascript, and id gotten this notion of using python to translate wikis with many pages to javascript that simulated having many pages from a single file. this was partly inspired by more complex js-based wiki apps that let you the same, along with editing and saving the wiki text.
eventually i started using js to translate the contents of a page from wiki syntax on the fly. and then i made it use gemtext, because i prefer the syntax.
and i made a text editor with a shell, but for fun i made it process gemtext links, like this:
```
=> i-freaking-love-these-things
```
one of the reasons i did this, is to make it so its easier to navigate between pages of text (including, actually primarily, pages from this website) using gemlinks that may already be there- if you have a gemini site, this lets you browse the pages offline, which is MUCH nicer for pages written for gemini than it is for most pages written for html or even wikis.
gemtext is just completely ideal for browsing as raw gemtext, while raw html is pretty horrible. modern wiki syntax isnt great either, and being able to put more than one link on the same line isnt a feature i really miss.
i have years of experience with what happens when you have the ability to put more than one link on a line. maybe its useful, but i dont particularly like it. did i mention i think gemlinks are really great?
i know which one id rather work with.
anyway, the paradigm im working with is basically this:
most of my files are text.
i put that text in a second file to make it an html page.
the html pages can be linked togther, so i can easily jump from page to page to page from other pages.
now that i can put a gemlink in any text file, the number of non-html and non-gemini files i can link together have greatly increased.
it wont work for png or jpg, but it will work with most files i would want to load in a text editor- and thats most of my files.
i do like graphics. but i spend way more time writing code or writing other text than i do editing graphics. with photos i just like the ability to organise- and find them. a text file or files with links to those non-text resources is great.
but i mean, i edit scripts and html in the same editor. i can jump to links to other files with the same editor. im toying with the idea of changing it so links to png and gif and jpg just open the file in a viewer, but the trick is deciding how to configure what viewer is used. id probably hardcode one and tell it to look for an optional file (it wont create it automatically) in the home folder.
how many different text files can i create gemlinks for, without breaking the file for more typical use?
for html its easy enough, just add html comments:
```
```
for javascript, which may not be on a page with html code, use js comments:
```
/*
=> look-a-gemlink
*/
```
for python scripts, use docstrings:
```
"""
=> look-a-gemlink
"""
```
for fig, use inline python:
```
python
"""
=> look-a-gemlink
"""
fig
```
you get the idea.
and if most of your files are text files of some kind, you dont actually need to use html.
or gemini.
you could have a text editor (like mine, or make your own plaintext browser) that reads gemlinks, and link together various files using plain text with simple gemlinks.
i mean, that may not do anything for you. the idea of your files being able to link to other files (such as your python scripts being able to link to their own documentation pages) may not be your thing. i think its a pretty interesting idea, but at the moment its not an idea im taking advantage of.
the versions of the editor that let me do this only go back a couple of weeks, and i was just thinking of making it so i could navigate my various gemtext pages without a web browser or even a proper gemini client.
this takes the idea a bit farther to linking all, or most text files. you could create indexes very easily by simply piping find to awk. the interesting part is that creating indexes is optional- you could simply create links between certain text files (including code) when you had reason to do so.
license: 0-clause bsd
```
# 2019, 2020, 2021, 2022, 2023, 2024, 2025
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
```
=> https://freesoftwareresistance.neocities.org