From a817aaade595cc09f09545f3154cd069f7d12ae5 Mon Sep 17 00:00:00 2001 From: Jeffrey Armstrong Date: Thu, 7 May 2020 10:35:38 -0400 Subject: Added a license that might annoy people. Added a readme and gave this mess a name. --- README.md | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..b5c34b2 --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +# LR-87: A Gemini Client + +LR-87 is a simple implementation of a client for launching into the world of the +Gemini protocol, a fun place somewhere between Gopher and the World Wide Web. The +client is implemented entirely in Fortran. + +LR-87 can be launched with an initial address, or it will default to +[gemini://gemini.circumlunar.space/](gemini://gemini.circumlunar.space/). The +default interface assumes you are at a dumb terminal, so you'll be presented +with a nice Fortran-esque input prompt after the first page of a site is displayed. +The prompt supports paging, entering link numbers, going back, or quitting, and it +is somewhat self-explanatory. The user should be aware that the command, such as +"B" for back must be followed by the ENTER/RETURN key. + +Links are displayed in LR-87's default renderer as: + +`[ 1][ Gemini documentation]` + +The link is numbered, and it can be followed by entering the link number at the +input prompt. Note that the link numbering *will change when page up or page down +is performed*. If you page down, for example, the new link number 1 is the new +first visible link, not the link labeled number 1 prior to page down. This +insane behavior is merely the product of the default renderer, not the underlying +code itself. + +## What's Not Supported + +LR-87 works, but it does _not_ remember certificates, store history or bookmarks, +or support sending user certificates. It will also complain if you attempt to +download a non-text file or try to access a non-Gemini address. These features +might be added in the future, but don't hold your breath. + +## Compiling + +LR-87 requires a substantial number of Fortran 2003/2008 features. The software +compiles fine with relatively modern versions of GNU Fortran (tested with versions 8 +and 9). [Simply Fortran](https://simplyfortran.com) projects are included for both +Windows and UNIX-y operating systems. + +On Windows, users will need an OpenSSL implementation for linking. I suggest, but +do not endorse, [this distribution](https://bintray.com/vszakats/generic/openssl), +which seems to work fine. + +## Extending + +All drawing, status reporting, and user interaction is handled by derived types +extended from the abstract "renderer" type, which handles parsing links and wrapping +regular text internally. A new renderer would be relatively easy to generate if it +implemented the abstract interfaces in the "renderer" type. + +The code currently contains one implementation, "dumb_renderer," that assumes the +user is at a dumb terminal. It assumes a fixed 80x24 terminal without any escape +sequences. + +## License + +LR-87 is Copyright (c) 2020 Jeffrey Armstrong , and the software +is licensed under the JSON license. See LICENSE.txt for more details. -- cgit v1.2.3