_---_ _---_
/ \/ \
/ __ !! __ \ x
( ___ || ___ ) .
.__---\ __ !! __ /---__. . .
/ \ _ || _ / \ .
/ (O)= .. =(O) \ .
|- \ / . | .
(*) | . /{}` ´{}\ | .
\ (-) | \ c c / . |\ .
\V/ | . \ {} / |-\´
´\ |_ \ / . |--\´
V \ . V \/\7 7 /\---\´ ,
(+) | \ \ \/ . / / \---\´___/\,
\ (x) /__ V=---_____---=V . _\ \________/´
´\v/ | /--¨ ¨--\ |
.. V . ... _/o^o^o^o^`\_ _/´^o^o^o^o\_ . ..spitlo 2020
__ . . ____ ____ ____ _ _ ____ _ ____ ____ ____ ____ ___ ____ ___ ______>
|\/| |___ |__/ | | | |__/ | | |___ |__/ |__| | | | |__] [__
L L |___ L \ |___ |__| L \ | |___ |___ L \ L | L |__| L _____]
- -- ----- ---- ---------------------------- ---- -------------- -/-- --- - +
This is a very pretty basic client for Gemini, inspired by the 100 LOC demos by solderpunk. Mainly to try Deno, but also to test the Gemini protocol.
Assuming Deno is installed and Deno’s bin folder is added to your path:
deno install -f --allow-net -n merc https://deno.land/x/merc@v1.7.0/cli.ts
Mercuriceratops will now be installed as merc
and available to run from your command line:
$ merc
URL>
Assuming Deno is installed:
$ cd mercuriceratops
$ ./merc
URL>
To visit a Gemini page, enter the URL at the URL>
prompt or start it with a URL as argument.
Merc only handles Gemini links for now, and you can leave out the protocol part of the URL.
To go back, enter 'b' at the prompt. To quit, enter 'q'.
To search using gus.guru, enter 's' and then enter your query at the SEARCH>
prompt.
To follow a link, enter the link number and press enter.
You can also supply a URL directly:
$ merc gemini.circumlunar.space
Connecting to <gemini.circumlunar.space>
Following redirect to: gemini://gemini.circumlunar.space/
Connecting to <gemini.circumlunar.space>
-h, --help
Prints help end exits
-d, --dump
Prints document body and exits
-w, --width <number>
Wraps text at <number> columns
-p, --paginate <number>
Show <number> of rows at a time.
Defaults to 50 if no <number> is supplied
- Pagination
- More/better styling in interactive mode
- Fix "up" (../) links
- Break out Gemini parser
- Add start page
- Fix links on start page
- Add more todos
- Add search (gemini://gus.guru/)
- Fix 'b', back works more like
cd -
now - Clean up argument parsing
- Deno install (
merc
?) - Lock dependency versions
- Add to deno.land/x
- Don’t fail catastrophically on cert errors
- Handle certs better (See section 4, TLS)
- Add a timeout (and/or the possibility to cancel) when loading a page
- Word wrap for headers when width is set
- Word wrap for link labels when width is set
- Implement 'f', forward
- Implement a history tree? (Something like what Nyxt has)
- Bookmarks?
- Handle gopher?
- Handle downloads?
- Handle http(s)?
- Add 'h', help, in interactive mode
- Fix loop bug in interactive mode (
WARNING Couldn’t find that link, try again
)