path: root/README.md
diff options
authorJeffrey Armstrong <jeff@approximatrix.com>2020-05-07 10:35:38 -0400
committerJeffrey Armstrong <jeff@approximatrix.com>2020-05-07 10:35:38 -0400
commita817aaade595cc09f09545f3154cd069f7d12ae5 (patch)
treef21d4284b0f176d9607cc6a14cbc71e56d72a55d /README.md
parentb3b8506ef0ce1200cd1f50455ff4a81deb8bd74e (diff)
Added a license that might annoy people. Added a readme and gave this mess a name.
Diffstat (limited to 'README.md')
1 files changed, 58 insertions, 0 deletions
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
+## License
+LR-87 is Copyright (c) 2020 Jeffrey Armstrong <jeff@rainbow-100.com>, and the software
+is licensed under the JSON license. See LICENSE.txt for more details.