1 \input texinfo @c -*-texinfo-*-
3 @setfilename elpher.info
4 @settitle Elpher Manual v1.0.0
8 This manual documents Elpher, a gopher client for Emacs.
10 Copyright @copyright{} 2019 Tim Vaughan
13 The source and documentation of Elpher is free software. You can
14 redistribute it and/or modify it under the terms of the GNU General
15 Public License as published by the Free Software Foundation; either
16 version 3, or (at your option) any later version.
18 Elpher is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNElpher FOR A PARTICULAR PURPOSE. See the GNU General Public License in
21 the file COPYING in the same directory as this file for more details.
26 @title Elpher Gopher Client Manual
30 @vskip 0pt plus 1filll
37 @node Top, Introduction, (dir), (dir)
44 * Introduction:: Elpher Overview: what's this all about?
45 * Installation:: Installing Elpher
46 * Quick Start:: Get up and running quickly
47 * Navigation:: Fundamentals of Elpher navigation
48 * Bookmarks:: How to record and visit bookmarks
49 * Character encodings:: How Elpher handles different character encodings
50 * Customization:: How to customize various aspects of Elpher
54 @node Introduction, Installation, Top, Top
57 Elpher aims to be a capable and practical gopher client for Emacs. Its
58 focus is on easy keyboard-driven navigation based on sensible default
59 bindings (with out-of-the-box support for Evil). It is intended to be
60 robust and behave in non-surprising ways at all times. Additionally,
61 Elpher provides the following bells and whistles:
65 an easily navigable history, sporting caching of visited pages (both
66 content and cursor position),
69 auto-completing menu item navigation,
72 followable web and gopher links in plain text,
75 direct visualization of image files where supported (no writing to
79 a simple bookmark management system.
82 Elpher is still under active development. Although we try very hard to
83 ensure that releases are bug-free, this cannot be guaranteed. However,
84 this also means that any usability features that you feel are missing
85 can likely by incoroporated quickly, so please get in touch if you
88 @node Installation, Quick Start, Introduction, Top
91 Elpher is available from the MELPA package repository. If you have
92 never installed packages from this repository before, you'll need
93 to follow the instructions at @url{https://melpa.org/#/getting-started}.
95 @noindent To install Elpher, enter the following:
98 @kbd{M-x package-install @key{RET} elpher @key{RET}}
101 @noindent To uninstall, use
104 @kbd{M-x package-delete @key{RET} elpher @key{RET}}.
107 While not recommended, it is also possible to install Elpher directly by
108 downloading the file @file{elpher.el} from
109 @url{https://github.com/tgvaughan/elpher}, adding it to a directory in
110 your @code{load-path}, and then adding
116 @noindent to your Emacs initialization file.
118 @node Quick Start, Navigation, Installation, Top
121 Before diving into the minutiae of the different commands available,
122 we will quickly describe how to get up and running with Elpher.
124 Once installed, you can launch Elpher using
127 @kbd{M-x elpher @key{RET}}
130 @noindent This will switch to the *Elpher* buffer and display a start
131 page, with information on each of the default keyboard bindings.
133 From here you can move point between links (which may be menu items or
134 inline URLs in text files) by using @key{TAB} and @kbd{Shift-TAB} keys,
135 as in Info. You can also jump directly to a menu item using @key{m}, or
136 use the standard Emacs or Evil motion and search commands to find your
137 way around. To open a link, press @key{RET}. (Where a mouse is
138 available, Clicking on a link with the mouse cursor has the same
141 To return to the page you just followed the link from, press @key{u}.
143 Elpher caches (for the duration of an Emacs session) both page contents
144 and the position of point on each of the pages (gopher menus, query
145 results, or text pages) you visit, restoring these when you next visit
146 the same page. Thus, pressing @key{u} displays the previous page in
147 exactly the same state as when you left, meaning that you can quickly
148 and visually explore the different documents in a menu without having to
149 wait for anything to reload.
151 Of course, sometimes you'll @emph{want} to reload the current page
152 rather than stick with the cached version. To do this use @key{R}.
153 (This is particularly useful for search query results, where this
154 allows you to perform a different search.)
156 That's more-or-less it. Elpher supports a number of other features, such
157 as bookmarking, support for different coding schemes and TLS encryption,
158 and a variety of customization options, all of which are explained in
159 the rest of this document. However the emphasis is on keeping the basic
160 navigation experience as intuitive and responsive as possible.
162 @node Navigation, Bookmarks, Quick Start, Top
165 Throughout this manual, we use the word ``page'' to refer to any
166 visualization of a response from a gopher server, be it a
167 menu/directory, query result, text file or image. We use
169 Elpher's navigation interface is inspired by the Emacs Info mode.
170 Movement within a page is essentially the same as moving
171 around any other text file in Emacs, but with special keys
172 for quickly jumping between menu items and URLs in text files.
173 Movement between pages is facilitated by a simple linear history
174 coupled with caching of pages and cursor position.
177 * Within-page navigation:: Moving about within a page
178 * Between-page navigation:: Concepts and commands for moving between pages
182 @node Within-page navigation, Between-page navigation, Navigation, Navigation
183 @section Within-page navigation
185 To move about within a page, you should be able use the same keys you usually
186 use to browse files in Emacs. This is even true when Evil mode is
187 enabled. Paragraph hopping, searching etc should work as usual.
189 In addition, the following commands are provided for quickly moving between
190 links and menu items.
193 @item @kbd{tab} (@code{elpher-next-link})
194 Move to the next link or menu item in the file.
196 @item @kbd{<S-tab>}/@kbd{<backtab>} (@code{elpher-prev-link})
197 Move to the previous link or menu item in the file.
199 @item @kbd{m} (@code{elpher-jump})
200 Jump directly to a link within a file by specifying its display string
201 or link text. (Unlike the previous two commands, this immediately opens
205 The following commands can be used to retrieve information about the
206 current page, or the address of the link at point:
209 @item @kbd{i} (@code{elpher-info-link})
210 Display host, port and selector information for the link at point.
212 @item @kbd{I} (@code{elpher-info-current})
213 Display host, port and selector information for the current page.
215 @item @kbd{c} (@code{elpher-copy-link-url})
216 Add URL representing address of link at point to the kill-ring and the
217 system clipboard (if available).
219 @item @kbd{C} (@code{elpher-copy-current-url})
220 Add URL representing address of the current page to the kill-ring and
221 the system clipboard (if available).
225 @node Between-page navigation, , Within-page navigation, Navigation
226 @section Between-page navigation
228 Moving to a different page can be accomplished in several ways,
229 described by the following command:
232 @item @kbd{RET}, @kbd{mouse-1} (@code{elpher-follow-link})
233 Follow the menu item or link at point (or selected with the mouse).
235 Exactly what is meant by ``follow'' depends on the kind of item selected:
239 For text or menu type items or links, the curent page text is replaced
240 by the text of this item. Unless the customization variable
241 @code{elpher-use-header} (@pxref{Customization}) is
242 @code{nil}, the display string of the link is displayed in the buffer header.
243 Links to images behave similarly on Emacs systems supporting the display of
244 bitmap graphics, however their content is not cached in memory by default.
247 When followed, links to search/query items (type 7) prompt for input in
248 the minibuffer then display the results in the same way as for text and menu
252 Following links to binary files (and image files on unsupported systems)
253 causes Elpher to prompt for a filename in which to save the content.
256 Once a text, menu or query response page is retrieved, its contents are
257 cached for the duration of the Emacs session.
259 @item @kbd{d} (@code{elpher-download})
261 @item @kbd{g} (@code{elpher-go})
263 @item @kbd{O} (@code{elpher-root-dir})
265 @item @kbd{u} (@code{elpher-back})
266 Return to the previous page, where ``previous'' means the page where the
267 page which was displayed immediately before the current page.
270 @node Bookmarks, Character encodings, Navigation, Top
273 @node Character encodings, Customization, Bookmarks, Top
274 @chapter Character encodings
276 @node Customization, Index, Character encodings, Top
277 @chapter Customization
279 @node Index, , Customization, Top