X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=elpher.git;a=blobdiff_plain;f=elpher.texi;h=34c3a6133e7fe006331e4aea1666475944f46c4a;hp=0de237cabfd1b9fe4eb0dbdca4a307f939d2b2a0;hb=b4f69e8bbbde380f1799e3b5190ccde1312a36e7;hpb=2d67a49b7f3108bc014d5f0ba3f79d56cca01c17 diff --git a/elpher.texi b/elpher.texi index 0de237c..34c3a61 100644 --- a/elpher.texi +++ b/elpher.texi @@ -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