* 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::
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
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.
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
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 strip ANSI escape sequences from
-text before displaying, the timeout to impose on network connections,
-and whether to prompt for confirmation when switching away from TLS.
+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.