Updated news section of manual.
[elpher.git] / elpher.texi
index 498e1bb..406dd8b 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo @c -*-texinfo-*-
 
 @setfilename elpher.info
 \input texinfo @c -*-texinfo-*-
 
 @setfilename elpher.info
-@settitle Elpher Manual v3.0.0
+@settitle Elpher Manual v3.1.0
 
 @dircategory Emacs
 @direntry
 
 @dircategory Emacs
 @direntry
@@ -55,6 +55,8 @@ the file COPYING in the same directory as this file for more details.
 * 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
 * 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
 * Command Index::
 * News::                        Changes introduced by major releases
 * Customization::               How to customize various aspects of Elpher
 * Command Index::
 * News::                        Changes introduced by major releases
@@ -283,7 +285,7 @@ Moving to a different page can be accomplished in several ways,
 described by the following command:
 
 @table @asis
 described by the following command:
 
 @table @asis
-@keycmd{@key{RET}\, @kbd{mouse-1}, elpher-follow-link}
+@keycmd{@key{RET}\, @key{mouse-1}, elpher-follow-link}
 Follow the menu item or link at point (or selected with the mouse).
 
 Exactly what is meant by ``follow'' depends on the kind of item selected:
 Follow the menu item or link at point (or selected with the mouse).
 
 Exactly what is meant by ``follow'' depends on the kind of item selected:
@@ -337,7 +339,7 @@ structure of selectors.
 @keycmd{@key{O}, elpher-root-dir}
 Open the root page (empty selector) on the current host.
 
 @keycmd{@key{O}, elpher-root-dir}
 Open the root page (empty selector) on the current host.
 
-@keycmd{@key{u}\, @key{-}\, @key{^}\, @kbd{mouse-3}, elpher-back}
+@keycmd{@key{u}\, @key{-}\, @key{^}\, @key{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
 Return to the previous page, where ``previous'' means the page where the
 page which was displayed immediately before the current page.
 @end table
@@ -396,9 +398,9 @@ pages you visited in your current Emacs session.
 @node Bookmarks, Gopher character encodings, Navigation, Top
 @chapter Bookmarks
 
 @node Bookmarks, Gopher character encodings, Navigation, Top
 @chapter Bookmarks
 
-Elpher makes use of standard Emacs bookmarks. @xref{Bookmarks, , ,
-emacs, The Emacs Editor}. The following commands are perhaps the most
-useful ones:
+Elpher makes use of standard Emacs bookmarks.
+@xref{Bookmarks, , , emacs, The Emacs Editor}.
+The following commands are used to add new bookmarks:
 
 @table @asis
 @keycmd{@key{a}, elpher-bookmark-link}
 
 @table @asis
 @keycmd{@key{a}, elpher-bookmark-link}
@@ -410,9 +412,20 @@ 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.
 
 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}, elpher-open-bookmarks}
 @keycmd{@key{B}, elpher-open-bookmarks}
-Open a page displaying all current bookmarks. This is where you can
-delete and search bookmarks, for example.
+Visit a page displaying all elpher bookmarks. 
+The behaviour of the this function depends on the customization variable
+@code{elpher-use-emacs-bookmark-menu}.  If nil (the default), the
+command will visit a special elpher page listing all elpher-specific
+bookmarks.  If non-nil, the command will simply open the standard Emacs
+bookmark list displaying all current bookmarks (including non-elpher
+bookmarks).
+
+@keycmd{@kbd{C-x r l}, bookmark-bmenu-list}
+This command opens the standard Emacs bookmark menu, with which bookmarks
+can be renamed, deleted or annotated.
+
 @end table
 
 On opening the bookmarks page, elpher will offer to import any legacy
 @end table
 
 On opening the bookmarks page, elpher will offer to import any legacy
@@ -618,7 +631,7 @@ certificate file pair are erased from memory.  Furthermore, in the case
 of throw-away certificates, the corresponding files are deleted.
 
 
 of throw-away certificates, the corresponding files are deleted.
 
 
-@node Finger support, Customization, Gemini support, Top
+@node Finger support, Local files, Gemini support, Top
 @chapter Finger support
 
 Incidentally, Elpher has native support for querying finger servers.
 @chapter Finger support
 
 Incidentally, Elpher has native support for querying finger servers.
@@ -651,7 +664,62 @@ Thus @code{finger://user@@hostname} and @code{finger://hostname/user} are both e
 (The precedence of the /user notation over the user@ notation reflects a
 preference of the community.)
 
 (The precedence of the /user notation over the user@ notation reflects a
 preference of the community.)
 
-@node Customization, Command Index, Finger support, Top
+@node Local files, About pages, Finger support, Top
+@chapter Local files
+
+Elpher supports opening local files via @samp{file:} URLs.
+
+For instance, pressing @key{g} and entering @code{file:~/document.gmi}
+will load the file named @samp{document.gmi} in your home directory,
+provided this file exists.
+
+Files opened in this way are rendered according to their name, and in
+particular their extension.  The current mappings are as follows:
+
+@table @asis
+
+@item @samp{txt}
+
+Plain text documents.  All local text files are assumed to be
+UTF-8-encoded.
+
+@item @samp{gemini},@samp{gmi}
+
+Gemini documents (i.e. documents of MIME type ``text/gemini'').  All
+local gemini files are assumed to be UTF-8-encoded.
+
+@item @samp{html},@samp{htm}
+
+HTML documents.  All local HTML files are assumed to be UTF-8-encoded.
+
+@item @samp{png},@samp{jpg},@samp{jpeg},@samp{gif},@samp{bmp},@samp{tif},@samp{tiff}
+
+Image files.
+
+@item Anything else
+A binary document, which elpher will simply offer to save somewhere
+else. (Obviously this is not useful in its own right, but there's not
+much that elpher can sensibly do with unknown binary files.)
+
+@end table
+
+Sadly, due to particulars of the format, gophermap files (i.e. files
+containing literally the intended output of querying a directory
+selector according to RFC 1436) cannot be rendered using @samp{file:}.
+
+
+@node About pages, Customization, Local files, Top
+@chapter About pages
+
+Like other browsers, elpher makes certain internally-generated pages
+such as the initial welcome page, the bookmarks page, the history
+stack and the list of visited pages pages accessible as URLs with
+the ``about:'' type.
+
+This means that these pages can be bookmarked and, more usefully,
+added to a local file to be rendered as a user-defined start page.
+
+@node Customization, Command Index, About pages, Top
 @chapter Customization
 
 Various parts of Elpher can be customized via the 
 @chapter Customization
 
 Various parts of Elpher can be customized via the 
@@ -671,6 +739,17 @@ 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.
 
 text, the timeout to impose on network connections, and whether to
 prompt for confirmation when switching away from TLS.
 
+One particularly important customization is the @code{elpher-start-page}
+variable, which holds the URL of the page displayed initially when
+elpher starts, and when @key{U} is pressed.  By default this is set to
+@samp{about:welcome}, but any URL can be substituted.  For example, you
+might want to create a text/gemini file named
+@samp{~/.emacs/start-page.gmi} containing useful links and set the value
+of @code{elpher-start-page} to @samp{file:~/.emacs/start-page.gmi} to have
+these links displayed at startup.  Alternatively, you might prefer
+to set the value to @samp{about:bookmarks} so that the bookmarks page
+is used as the start page instead.
+
 See the customization group itself for details.
 
 @node Command Index, News, Customization, Top
 See the customization group itself for details.
 
 @node Command Index, News, Customization, Top
@@ -683,6 +762,54 @@ See the customization group itself for details.
 
 This chapter documents the major changes introduced by Elpher releases.
 
 
 This chapter documents the major changes introduced by Elpher releases.
 
+@section v3.2.0
+
+This version introduces several minor changes which, together, make it
+possible to set up alternative start pages configured to your liking.
+
+@subsection About pages
+
+Special elpher pages such as the welcome page (previously ``start''
+page), the bookmarks page, the browsing history stack and list of
+visited pages are now addressible via @samp{about:} URLs.  For instance,
+the standard welcome page has the address @samp{about:welcome}.
+
+@subsection Local files
+
+Local files can now be opened in elpher using @samp{file:} URLs. For
+example, @kbd{g @samp{file:~/my-start.gmi}} will open
+@samp{~/my-start.gmi} as a text/gemini document. @pxref{Local files}
+for details.
+
+@subsection Customizable start pages
+
+The new customization variable @code{elpher-start-page} contains the URL
+of the document to be loaded as elpher's ``start page''.  By default
+this is set to @samp{about:welcome}, but any elpher-accessible URL is
+valid. @pxref{Customization} for suggestions.
+
+@section v3.1.0
+
+@subsection Bookmarks system
+
+While Elpher bookmarks are still handled by the Emacs bookmark
+system, this release introduces the option to retain the
+original elpher bookmark page for the purpose of visiting those
+bookmarks.  In v3.1.0, @key{B} visits this page (and adds it to
+the history stack, as in previous versions), which can be interacted
+with using the standard elpher key bindings.
+
+Of course you can still view the bookmarks in the Emacs bookmark
+menu, which you can access from anywhere using the default
+binding @kbd{C-x r l} (or by following the link from the Elpher bookmarks
+page).  Indeed you will need to use this to rename, delete or otherwise
+edit your bookmarks.
+
+If you prefer to avoid using the Elpher bookmark page entirely, you
+use the customization variable @code{elpher-use-emacs-bookmark-menu}
+to have the @key{B} key open the Emacs bookmark menu directly, as in
+the previous release.
+
 @section v3.0.0
 
 @subsection Bookmarks system
 @section v3.0.0
 
 @subsection Bookmarks system
@@ -698,7 +825,7 @@ 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
 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
+version.  Instead, @key{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
 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
@@ -706,9 +833,9 @@ the menu open to see the complete list.)
 
 @subsection History
 
 
 @subsection History
 
-Browsing history can now be accessed via new bindings to @kbd{s} and @kbd{S}.
+Browsing history can now be accessed via new bindings to @key{s} and @key{S}.
 The former shows the current history ``stack'' (pages accessible with
 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
+the @key{u} key), while the latter shows a list of all pages which have
 been visited in the current session.
 
 @subsection Socks connections
 been visited in the current session.
 
 @subsection Socks connections
@@ -744,6 +871,7 @@ assistance and/or patches:
 @item Simon Nicolussi
 @item Noodles!
 @item Jens Östlund
 @item Simon Nicolussi
 @item Noodles!
 @item Jens Östlund
+@item Abhiseck Paira
 @item F. Jason Park
 @item Omar Polo
 @item Koushk Roy
 @item F. Jason Park
 @item Omar Polo
 @item Koushk Roy