Bugfix: bookmarks saving works again.
[elpher.git] / elpher.texi
index 6bff95b..34c3a61 100644 (file)
@@ -58,6 +58,7 @@ the file COPYING in the same directory as this file for more details.
 * Character encodings::         How Elpher handles different character encodings
 * Encrypted connections::       How and when TLS is enabled
 * Gemini support::              Support for the Gemini protocol
+* Finger support::              Support for the Finger protocol
 * Customization::               How to customize various aspects of Elpher
 * Command Index::
 
@@ -101,7 +102,10 @@ disk),
 a bookmark management system,
 
 @item
-basic support for the new ``heavier than gopher, lighter than the web'' Gemini protocol.
+basic support for the new ``heavier than gopher, lighter than the web'' Gemini protocol,
+
+@item
+support for the Finger protocol.
 
 @end itemize
 
@@ -132,7 +136,7 @@ to follow the instructions at @url{https://melpa.org/#/getting-started}.
 
 While not recommended, it is also possible to install Elpher directly by
 downloading the file @file{elpher.el} from
-@url{https://github.com/tgvaughan/elpher}, adding it to a directory in
+@url{gopher://thelambdalab.xyz/1/projects/elpher/}, adding it to a directory in
 your @code{load-path}, and then adding
 
 @example
@@ -322,7 +326,7 @@ structure of selectors.
 @keycmd{@key{O}, elpher-root-dir}
 Open the root page (empty selector) on the current host.
 
-@keycmd{@key{u}, elpher-back}
+@keycmd{@key{u}\, @kbd{mouse-3}, elpher-back}
 Return to the previous page, where ``previous'' means the page where the
 page which was displayed immediately before the current page.
 @end table
@@ -465,10 +469,10 @@ It can also be automatically switched off when a TLS connection fails.
 In this case Elpher will prompt for your confirmation to ensure that
 you can't accidentally make a non-TLS connection.
 
-@node Gemini support, Customization, Encrypted connections, Top
+@node Gemini support, Finger support, Encrypted connections, Top
 @chapter Gemini support
 
-@uref{gopher://zaibatsu.circumlunar.space/1/~solderpunk/gemini, Gemini}
+@uref{gopher://gemini.circumlunar.space, Gemini}
 is a new protocol being devloped by several members of
 gopherspace.  It aims to solve some of the long-standing technical
 issues associated with gopher as a protocol, while keeping the major benifits.
@@ -481,15 +485,80 @@ gemini and gopher documents.  Basically you should be able to open,
 bookmark, download and otherwise interact with gemini pages in exactly
 the same way as you do with other non-gemini pages.  The only major
 difference from your perspective as a user is that you should no longer
-have to worry about manually toggling TLS on or off, and you should
-never have to manually set a character coding scheme.
+have to worry about manually toggling TLS on or off (for gemini it's
+always on), and you should never have to manually set a character coding
+scheme.
+
+The gemini protocol specification recommends a Trust on First Use (TOFU)
+behaviour when validating gemini server TLS certificates.  This is
+because many gemini servers rely on self-signed certificates rather
+than certificates signed by a CA. Sadly however, this TOFU behaviour is
+far from straight-forward to configure using Emacs' existing Network
+Security Manager.  For this reason, elpher defaults to performing no
+certificate verification by default.  This behaviour can be easily
+customized by setting the @code{elpher-gemini-TLS-cert-checks}
+customization variable to non-nil.
+
+Like gopher, the gemini specification concerns both the protocol 
+ a simple text document format (mimetype text/gemini) which is
+like a mixture between gophermap files and markdown-formatted files but
+simpler than both.  Elpher renders gemini responses which are provided
+in this format in line with the rules in the spec.  This includes
+wrapping long lines at word boundaries.  The specific column at which
+this text is wrapped is defined by the customization variable
+@code{elpher-gemini-max-fill-width}, which is set to 80 columns by
+default. (This is slightly wider than Emacs' default fill width of 70
+columns due to the fact that there are a significant amount of older
+gemini which, against the advice of the current spec, hard wraps at <80
+columns.  The larger default allows this to still look okay, while
+still keeping content without hard wraps looking pleasant.)
+
+The text/gemini format also posesses a section header syntax similar to
+markdown.  Elpher allows different header levels to be drawn with
+different, customizable, faces.  By default, on graphically-capable
+emacs systems, these faces are given different heights to distinguish
+amongst levels.  On terminal systems, the level is indicated by the
+number of preceeding # symbols.
 
 I should emphasize however that, while it is definitely functional,
 Elpher's gemini support is still experimental, and various aspects will
-change as the protocol develops further.  Additionally, client TLS
-certicificates are as yet unsupported.
+change as the protocol develops further.  Additionally, the use of
+client TLS certicificates is still not yet supported.
+
+@node Finger support, Customization, Gemini support, Top
+@chapter Finger support
+
+Incidentally, Elpher has native support for querying finger servers.
+Of course, one could argue that this functionality is more easily
+provided by one's local telnet client.  However finger URLs do appear
+on occasion in gopherspace, and it's nice to be able to open them
+in place.
+
+Elpher interprets @code{finger://} URLs as follows:
+
+@itemize
+
+@item
+The host is determined by the host name portion of the URL.
+
+@item
+In the case that the @emph{file name} portion of the URL is non-empty (besides
+the leading slash), this is interpreted as the user to finger.
+
+@item
+Otherwise, the @emph{user} portion of the URL is interpreted as the user to finger.
+
+@item
+If no user is provided, the root directory of the finger server is requested.
+
+@end itemize
+
+Thus @code{finger://user@@hostname} and @code{finger://hostname/user} are both equivalent.
+
+(The precedence of the /user notation over the user@ notation reflects a
+preference of the community.)
 
-@node Customization, Command Index, Gemini support, Top
+@node Customization, Command Index, Finger support, Top
 @chapter Customization
 
 Various parts of Elpher can be customized via the 
@@ -504,10 +573,10 @@ using
 the appearance of Elpher, including one face per menu item type.
 
 The group also contains variables for customizing the behaviour of
-Elpher.  This includes how to open arbitrary (non-gopher) URLs,
-whether to display buffer headers, whether to look for naked URLs in
-gopher menus (as opposed to just plain text files), and whether
-to prompt for confirmation when switching away from TLS.
+Elpher.  This includes how to open arbitrary (non-gopher) URLs, whether
+to display buffer headers, how to deal with ANSI escape sequences in
+text, the timeout to impose on network connections, and whether to
+prompt for confirmation when switching away from TLS.
 
 See the customization group itself for details.