Bugfix: bookmarks saving works again.
[elpher.git] / elpher.texi
index 0de237c..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
 
@@ -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.
@@ -485,12 +489,76 @@ 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, the use of
-client TLS certicificates is not yet supported.
+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