~jameschip/jemini

An attempt at creating a gemini client in fish scripts.
adeec9bb — James Henderson 2 months ago
Add licence
0d985391 — James Henderson 2 months ago
Create project

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~jameschip/jemini
read/write
git@git.sr.ht:~jameschip/jemini

You can also use your local clone with git send-email.

#Jemini

Jemini is an attempt at implementing a gemini client using fish scripts. Where possible i have tried to only use fish built in commands, to do the requests to a gemini server it uses ncat as there is no built in function for that mechanism.

It has been written and tested using fish version 3.1.2

#TODO

  • Some mechanism to follow links.
  • Accept relative url's
  • Add more mime types other than gemtext and plaintext
  • Allow the user to add a client cert
  • Other things i have not thought of yet

#The scripts

The client is made up of several fish scripts, each having its own purpose. When combined they can be used to create a primative gemini client.

#jemini.fish

This is the script that ties all of the other scripts together. Run this to start the client running.

#jemini_request.fish

This script is responsible for performing a request to a gemini server and dealing with the responce. After a request has been performed the whole responce from the serrver is stored in the file ~/.jemini/request

Options -a address - This is the resource you are requesting -v verbose - Turn on verbose output mode.

Example jemini_request -a gemini.circumlunar.space/~jameschip/food/cgtchut.gmi

#jemini_parse.fish

This is used to parse gemtext file into a colourful output on you shiny fish session.

#jemini_url.fish

Used to manipulate URLs so that requests can be made.

Options -d domain - This strips a url to just the domain. -r request - Makes sure that a requested UIR is correct. -i [STRING] input - This adds an input from the user to a url as a query. -u [STRING] url - The url that is actually being requested.

Example jemini_url -d -u gemini.circumlunar.space/~jameschip/food/cgtchut.gmi

outputs gemini.circumlunar.space

#jemini_bookmarks.fish

Creates and manages a bookmarks file in ~/.jemini/bookmarks. Each line is its own bookmark.

Options -a [STRING] add - Add a bookmark -g [NUMBER] get - Get the bookmark -l list - List all of thebookmarks.