X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=elpher.git;a=blobdiff_plain;f=elpher.texi;h=3b54a31e64b0ff982a596d55a7e7b8e7cfa68656;hp=8c5983dc92c43c08fec65039ac2561491c5a9d90;hb=0d65ffa3ab238529a11d5c1a5d2dea5a6c27e9b4;hpb=fe79e5cd6a8b8d0f7ef431ce3294b85a5f9f617e diff --git a/elpher.texi b/elpher.texi index 8c5983d..3b54a31 100644 --- a/elpher.texi +++ b/elpher.texi @@ -1,13 +1,19 @@ \input texinfo @c -*-texinfo-*- -@c %**start of header + @setfilename elpher.info -@settitle Elpher Manual v1.0.0 -@c %**end of header +@settitle Elpher Manual v3.2.2 + +@dircategory Emacs +@direntry +* Elpher: (elpher). A gopher and gemini client for Emacs. +@end direntry @copying -This manual documents Elpher, a gopher client for Emacs. +This manual documents Elpher, a gopher and gemini client for Emacs. -Copyright @copyright{} 2019 Tim Vaughan +Copyright @copyright{} 2019, 2020, 2021 Tim Vaughan@* +Copyright @copyright{} 2021 Daniel Semyonov@* +Copyright @copyright{} 2021 Alex Schroeder @quotation The source and documentation of Elpher is free software. You can @@ -23,7 +29,7 @@ the file COPYING in the same directory as this file for more details. @end copying @titlepage -@title Elpher Gopher Client Manual +@title Elpher Gopher and Gemini Client Manual @author Tim Vaughan @page @@ -38,28 +44,56 @@ the file COPYING in the same directory as this file for more details. @top Elpher @insertcopying -@end ifnottex @menu * Introduction:: Elpher Overview: what's this all about? +* Installation:: Installing Elpher +* Quick Start:: Get up and running quickly * Navigation:: Fundamentals of Elpher navigation * Bookmarks:: How to record and visit bookmarks -* Character encodings:: How Elpher handles different character encodings +* Gopher character encodings:: How Elpher selects encodings for gopher pages +* Encrypted gopher connections:: How and when TLS is enabled for gopher +* Gemini support:: Support for the Gemini protocol +* Finger support:: Support for the Finger protocol +* Local files:: Opening local files in elpher +* About pages:: Special pages and how to reference them * Customization:: How to customize various aspects of Elpher -* Hacking:: Contributing changes to Elpher -* Index:: +* Command Index:: +* News:: Changes introduced by major releases +* Acknowledgements:: Contributors to Elpher + +@detailmenu + --- The Detailed Node Listing --- + +Navigation + +* Within-page navigation:: Moving about within a page +* Between-page navigation:: Commands for moving between pages +* History and Caching:: Explanation of how Elpher represents history + +@end detailmenu @end menu -@node Introduction, Navigation, Top, Top +@end ifnottex + +@macro keycmd{key,cmd} +@item \key\ (@code{\cmd\}) +@findex \cmd\ +@end macro + +@node Introduction, Installation, Top, Top @chapter Introduction -Elpher aims to be a capable and practical gopher client for Emacs. Its -focus is on easy keyboard-driven navigation based on sensible default -bindings (with out-of-the-box support for Evil). It is intended to be -robust and behave in non-surprising ways at all times. Additionally, -Elpher provides the following bells and whistles: +Elpher aims to be a capable and practical gopher and gemini client for +Emacs. Its focus is on easy keyboard-driven navigation based on +sensible default bindings (with out-of-the-box support for Evil). It is +intended to be robust and behave in non-surprising ways at all times. +Additionally, Elpher provides the following bells and whistles: @itemize +@item +followable web and gopher links in plain text, + @item an easily navigable history, sporting caching of visited pages (both content and cursor position), @@ -68,28 +102,109 @@ content and cursor position), auto-completing menu item navigation, @item -followable web and gopher links in plain text, +direct visualization of image files where supported (no writing to +disk), @item -direct visualization of image files where supported (no writing to -disk), and +basic support for the new ``heavier than gopher, lighter than the web'' Gemini protocol, @item -a simple bookmark management system. +support for the Finger protocol. + @end itemize Elpher is still under active development. Although we try very hard to ensure that releases are bug-free, this cannot be guaranteed. However, this also means that any usability features that you feel are missing -can likely by incoroporated quickly, so please get in touch if you +can likely by incorporated quickly, so please get in touch if you have some ideas. -@node Navigation, Bookmarks, Introduction, Top -@chapter Navigation +@node Installation, Quick Start, Introduction, Top +@chapter Installation + +Elpher is available from the MELPA package repository. If you have +never installed packages from this repository before, you'll need +to follow the instructions at @url{https://melpa.org/#/getting-started}. + +@noindent To install Elpher, enter the following: + +@example +@kbd{M-x package-install @key{RET} elpher @key{RET}} +@end example + +@noindent To uninstall, use +@example +@kbd{M-x package-delete @key{RET} elpher @key{RET}}. +@end example + +It is also possible to install Elpher directly by downloading the file +@file{elpher.el} from @url{gopher://thelambdalab.xyz/1/projects/elpher} +(you'll need to download the ``source archive'' and extract it), adding +it to a directory in your @code{load-path}, and then adding + +@example +(require 'elpher) +@end example + +@noindent to your Emacs initialization file. + +@node Quick Start, Navigation, Installation, Top +@chapter Quick Start + +Before diving into the minutiae of the different commands available, +we will quickly describe how to get up and running with Elpher. + +Once installed, you can launch Elpher using + +@example +@kbd{M-x elpher @key{RET}} +@end example + +@noindent This will switch to the *Elpher* buffer and display a start +page, with information on each of the default keyboard bindings. + +From here you can move point between links (which may be menu items or +inline URLs in text files) by using @key{TAB} and @kbd{S-@key{TAB}}, +as in Info. You can also jump directly to a menu item using @key{m}, or +use the standard Emacs or Evil motion and search commands to find your +way around. To open a link, press @key{RET}. (Where a mouse is +available, Clicking on a link with the mouse cursor has the same +effect.) + +To return to the page you just followed the link from, press @key{u}. + +Elpher caches (for the duration of an Emacs session) both page contents +and the position of point on each of the pages (gopher menus, gemini +pages, query results, or text pages) you visit, restoring these when you +next visit the same page. Thus, pressing @key{u} displays the previous +page in exactly the same state as when you left, meaning that you can +quickly and visually explore the different documents in a menu without +having to wait for anything to reload. + +Of course, sometimes you'll @emph{want} to reload the current page +rather than stick with the cached version. To do this use @key{R}. +(This is particularly useful for search query results, where this +allows you to perform a different search.) + +That's more-or-less it. Elpher supports a number of other features, +such a support for different coding schemes and TLS encryption, and a +variety of customization options, all of which are explained in the +rest of this document. However the emphasis is on keeping the basic +navigation experience as intuitive and responsive as possible. + +Note that you can launch multiple Elpher sessions in parallel by using +a prefix: + +@example +@kbd{C-u M-x elpher @key{RET}} +@end example + +@node Navigation, Bookmarks, Quick Start, Top +@chapter Navigation Throughout this manual, we use the word ``page'' to refer to any -visualization of a response from a gopher server, be it a -menu/directory, query result, text file or image. We use +visualization of a response from a gopher or gemini server, be it a +menu/directory, query result, text file or image. Elpher's navigation interface is inspired by the Emacs Info mode. Movement within a page is essentially the same as moving @@ -100,9 +215,11 @@ coupled with caching of pages and cursor position. @menu * Within-page navigation:: Moving about within a page -* Between-page navigation:: Concepts and commands for moving between pages +* Between-page navigation:: Commands for moving between pages +* History and Caching:: Explanation of how Elpher represents history @end menu + @node Within-page navigation, Between-page navigation, Navigation, Navigation @section Within-page navigation @@ -114,70 +231,658 @@ In addition, the following commands are provided for quickly moving between links and menu items. @table @asis -@item @kbd{tab} (@code{elpher-next-link}) +@keycmd{@key{TAB}, elpher-next-link} Move to the next link or menu item in the file. -@item @kbd{}/@kbd{