\input texinfo @c -*-texinfo-*-
@setfilename elpher.info
-@settitle Elpher Manual v2.11.0
+@settitle Elpher Manual v3.0.0
@dircategory Emacs
@direntry
@copying
This manual documents Elpher, a gopher and gemini client for Emacs.
-Copyright @copyright{} 2019, 2020 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
* Navigation:: Fundamentals of Elpher navigation
* Bookmarks:: How to record and visit bookmarks
* Gopher character encodings:: How Elpher selects encodings for gopher pages
-* Encrypted gopher connections:: How and when TLS is enabled for gopher
+* 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
* Customization:: How to customize various aspects of Elpher
* Command Index::
+* News:: Changes introduced by major releases
+* Acknowledgements:: Contributors to Elpher
@detailmenu
--- The Detailed Node Listing ---
@end detailmenu
@end menu
+
@end ifnottex
@macro keycmd{key,cmd}
@kbd{M-x package-delete @key{RET} elpher @key{RET}}.
@end example
-While not recommended, it is also possible to install Elpher directly
-by downloading the file @file{elpher.el} from
-@url{https://alexschroeder.ch/cgit/elpher}, adding it to a directory
-in your @code{load-path}, and then adding
+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)
(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
-as bookmarking, 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
+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 or gemini server, be it a
-menu/directory, query result, text file or image. We use
+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
the selected link.
@end table
+
The following commands can be used to retrieve information about the
current page, or the address of the link at point:
cached for the duration of the Emacs session.
@keycmd{@key{g}, elpher-go}
-Open a particular page by specifying either its full URL or just entering
-a gopher host name. (The protocol defaults to gopher, so gemini links must include the @code{gemini://} prefix.
+Open a particular page by specifying either its full URL or just
+entering a gopher host name. (The protocol defaults to gopher, so gemini
+links must include the @code{gemini://} prefix.
If a unsupported protocol is used in the URL the result will be the same
as following a URL link of the same type from a link in a page.
@keycmd{@key{O}, elpher-root-dir}
Open the root page (empty selector) on the current host.
-@keycmd{@key{u}\, @kbd{mouse-3}, elpher-back}
+@keycmd{@key{u}\, @key{-}\, @key{^}\, @kbd{mouse-3}, elpher-back}
Return to the previous page, where ``previous'' means the page where the
page which was displayed immediately before the current page.
@end table
from a given page. This means that, at least for links followed from menus
and text files, the inverse of @key{u} is actually just @key{RET}.
+Elpher actually maintains two histories, and there are two different
+commands to access them:
+
+@table @asis
+@keycmd{@key{s}, elpher-show-history}
+This shows the history of the current buffer. This shows all the links
+you would visit if you were to use @key{u} again and again.
+
+@keycmd{@key{S}, elpher-show-visited-pages}
+This shows the entire Elpher browsing history. It includes all the
+pages you visited in your current Emacs session.
+
+@end table
@node Bookmarks, Gopher character encodings, Navigation, Top
@chapter Bookmarks
useful ones:
@table @asis
-@keycmd{@key{a}, elpher-set-bookmark-no-overwrite}
+@keycmd{@key{a}, elpher-bookmark-link}
Add a bookmark for the link at point. The minibuffer will prompt for
a name for the bookmark, which defaults to the display string.
-@keycmd{@key{A}, bookmark-set-no-overwrite}
+@keycmd{@key{A}, elpher-bookmark-current}
Add a bookmark for the current page. The minibuffer will prompt for
a name for the bookmark, defaulting to the display string associated
with the link that was followed to reach the current page.
-@keycmd{@key{B}, bookmark-bmenu-list}
+@keycmd{@key{B}, elpher-open-bookmarks}
Open a page displaying all current bookmarks. This is where you can
delete and search bookmarks, for example.
-
@end table
-If all your bookmarks disappeared in an upgrade from 2.10 to 2.11, you
-need to import the old Elpher bookmarks into your Emacs bookmarks
-using
+On opening the bookmarks page, elpher will offer to import any legacy
+(2.x) bookmarks files into the new system. Once the import is complete,
+the original bookmarks file will have ``-legacy'' appended to it, so
+so that elpher knows not to import it again.
+
+If you have any other legacy bookmark files (besides the one in the
+original location, or specified in the @code{elpher-bookmarks-file}
+customization variable, which should be automatically detected), you can
+can import these using
@example
@kbd{M-x elpher-bookmark-import @key{RET}}
@end example
-Once this is done, you can delete the file with the Elpher bookmarks.
+Once this is done, you may delete these legacy bookmarks files.
@node Gopher character encodings, Encrypted gopher connections, Bookmarks, Top
@chapter Gopher character encodings
system used by whoever authored the document.
Unfortunately gopher lacks a systematic way of acquiring this necessary
-information. Thus, the details of the coding system must be either inferred from the binary data,
-or must be specified by the user.
+information. Thus, the details of the coding system must be either
+inferred from the binary data, or must be specified by the user.
By default, Elpher applies Emacs' built-in character encoding detection
system to the full (undecoded) response data and uses this to attempt to
using the following command:
@table @asis
-@keycmd{@key{S},elpher-set-coding-system}
+@keycmd{@key{!},elpher-set-coding-system}
Causes a elpher to prompt for a coding system to use for decoding
future gopher text. The @key{TAB} key can be used at this prompt to display a
list of alternatives (which is extensive) and to auto-complete. An empty
See the customization group itself for details.
-@node Command Index, , Customization, Top
+@node Command Index, News, Customization, Top
@unnumbered Command Index
@printindex fn
+@node News, Acknowledgements, Command Index, Top
+@chapter News
+
+This chapter documents the major changes introduced by Elpher releases.
+
+@section v3.0.0
+
+@subsection Bookmarks system
+
+Bookmarks are now handled by Emacs' own bookmark management system,
+instead of Elpher's own system.
+(For details, @xref{Bookmarks, , , emacs, The Emacs Editor}.)
+This means two things. Firstly,
+the bookmarks file (elpher-bookmarks by default) and format used by
+previous versions are now deprecated. If these are detected, Elpher
+will offer to import your old bookmarks when you first accessing the
+bookmark list with the new version. A suffix will be added to your
+old bookmarks file so that Elpher knows that the import is complete.
+
+Secondly, the old Elpher bookmark menu has been removed in the new
+version. Instead, @kbd{B} brings up the menu provided by the Emacs
+function @code{bookmark-bmenu-list}. This has different key and mouse
+bindings to Elpher's old menu, but is much more functional. Bookmarks
+can be renamed, deleted in groups, and much more. (Use @kbd{C-h m} with
+the menu open to see the complete list.)
+
+@subsection History
+
+Browsing history can now be accessed via new bindings to @kbd{s} and @kbd{S}.
+The former shows the current history ``stack'' (pages accessible with
+the @kbd{u} key), while the latter shows a list of all pages which have
+been visited in the current session.
+
+@subsection Socks connections
+
+Elpher can now use socks connections to browse via TOR.
+
+@subsection browse-url, Org and mu4e integration
+
+These integrations provide support for elpher-handling of gemini, gopher
+and finger URLs using @code{browse-url}, in Org documents, and the mu4e
+mail system.
+
+@subsection imenu integration
+
+Gemini document headers are now navigable via imenu.
+For details, @xref{Imenu, , , emacs, The Emacs Editor}.
+
+@node Acknowledgements, , News, Top
+@chapter Acknowledgements
+
+Elpher was originally written by Tim Vaughan. Recent maintenance has
+been done by and with the help of Alex Schroeder. In addition, the
+following people (in alphabetical order) have generously provided
+assistance and/or patches:
+
+@itemize
+@item Alexis
+@item Christopher Brannon
+@item Zhiwei Chen
+@item condy0919
+@item Étienne Deparis
+@item Roy Koushik
+@item Simon Nicolussi
+@item Noodles!
+@item Jens Östlund
+@item F. Jason Park
+@item Omar Polo
+@item Koushk Roy
+@item Michel Alexandre Salim
+@item Alex Schroeder
+@item Daniel Semyonov
+@item Simon South
+@item Bradley Thornton
+@item Vee
+@end itemize
+
+
@bye