X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=elpher.el;h=d225d0353f3cea1ab0674b19c0979ec50683f06e;hb=0d10abbb1faa7180e4b358f2a5aa394ebe5e491e;hp=8e2e48ec78d4860f8b605799081eeb13ae4ff6fc;hpb=2e5c279c70ca6c6fbe510fc3b8332b3fc43eb60f;p=elpher.git diff --git a/elpher.el b/elpher.el index 8e2e48e..d225d03 100644 --- a/elpher.el +++ b/elpher.el @@ -4,7 +4,7 @@ ;; Author: Tim Vaughan ;; Created: 11 April 2019 -;; Version: 1.4.3 +;; Version: 1.4.5 ;; Keywords: comm gopher ;; Homepage: https://github.com/tgvaughan/elpher ;; Package-Requires: ((emacs "25")) @@ -29,22 +29,22 @@ ;; Elpher aims to provide a practical and friendly gopher client ;; for GNU Emacs. It supports: -;; - an intuitive keyboard and mouse-driven interface, -;; - followable web and gopher links in plain text, -;; - caching of visited sites (both content and cursor position), +;; - intuitive keyboard and mouse-driven browsing, +;; - out-of-the-box compatibility with evil-mode, +;; - clickable web and gopher links *in plain text*, +;; - caching of visited sites, ;; - pleasant and configurable colouring of Gopher directories, ;; - direct visualisation of image files, -;; - (m)enu key support, similar to Emacs' info browser, ;; - a simple bookmark management system, -;; - support for TLS. +;; - connections using TLS encryption. ;; To launch Elpher, simply use 'M-x elpher'. This will open a start ;; page containing information on key bindings and suggested starting ;; points for your gopher exploration. -;; Further instructions can be found in the Elpher info manual. +;; Full instructions can be found in the Elpher info manual. -;; Elpher is under active development, and any suggestions for +;; Elpher is under active development. Any suggestions for ;; improvements are welcome! ;;; Code: @@ -57,52 +57,12 @@ ;;; Global constants ;; -(defconst elpher-version "1.4.3" +(defconst elpher-version "1.4.5" "Current version of elpher.") (defconst elpher-margin-width 6 "Width of left-hand margin used when rendering indicies.") -(defconst elpher-start-index - (mapconcat - 'identity - (list "i\tfake\tfake\t1" - "i --------------------------------------------\tfake\tfake\t1" - "i Elpher Gopher Client \tfake\tfake\t1" - (format "i version %s\tfake\tfake\t1" elpher-version) - "i --------------------------------------------\tfake\tfake\t1" - "i\tfake\tfake\t1" - "iUsage:\tfake\tfake\t1" - "i\tfake\tfake\t1" - "i - tab/shift-tab: next/prev item on current page\tfake\tfake\t1" - "i - RET/mouse-1: open item under cursor\tfake\tfake\t1" - "i - m: select an item on current page by name (autocompletes)\tfake\tfake\t1" - "i - u: return to parent\tfake\tfake\t1" - "i - O: visit the root menu of the current server\tfake\tfake\t1" - "i - g: go to a particular gopher address\tfake\tfake\t1" - "i - i/I: info on item under cursor or current page\tfake\tfake\t1" - "i - c/C: copy URL representation of item under cursor or current page\tfake\tfake\t1" - "i - a/A: bookmark the item under cursor or current page\tfake\tfake\t1" - "i - x/X: remove bookmark for item under cursor or current page\tfake\tfake\t1" - "i - B: visit the bookmarks page\tfake\tfake\t1" - "i - r: redraw current page (using cached contents if available)\tfake\tfake\t1" - "i - R: reload current page (regenerates cache)\tfake\tfake\t1" - "i - T: toggle TLS mode\tfake\tfake\t1" - "i - d/D: download item under cursor or current page\tfake\tfake\t1" - "i - w: display the raw server response for the current page\tfake\tfake\t1" - "i - S: set an explicit character coding system (default is to autodetect)\tfake\tfake\t1" - "i\tfake\tfake\t1" - "iWhere to start exploring Gopherspace:\tfake\tfake\t1" - "i\tfake\tfake\t1" - "1Floodgap Systems Gopher Server\t/\tgopher.floodgap.com\t70" - "i\tfake\tfake\t1" - "iAlternatively, select the following item and enter some\tfake\tfake\t1" - "isearch terms:\tfake\tfake\t1" - "i\tfake\tfake\t1" - "7Veronica-2 Gopher Search Engine\t/v2/vs\tgopher.floodgap.com\t70" - ".\r\n") - "\r\n") - "Source for elpher start page.") (defconst elpher-type-map '((?0 elpher-get-text-node "txt" elpher-text) @@ -116,7 +76,7 @@ (?p elpher-get-image-node "img" elpher-image) (?I elpher-get-image-node "img" elpher-image) (?d elpher-get-node-download "doc" elpher-binary) - (?h elpher-get-url-node "web" elpher-url) + (?h elpher-get-url-node "url" elpher-url) (bookmarks elpher-get-bookmarks-node "#" elpher-index) (start elpher-get-start-node "#" elpher-index)) "Association list from types to getters, margin codes and index faces.") @@ -789,7 +749,53 @@ calls, as is necessary if the match is performed by `string-match'." (defun elpher-get-start-node () "Getter which displays the start page." (elpher-with-clean-buffer - (elpher-insert-index elpher-start-index) + (insert " --------------------------------------------\n" + " Elpher Gopher Client \n" + " version " elpher-version "\n" + " --------------------------------------------\n" + "\n" + "Default bindings:\n" + "\n" + " - TAB/Shift-TAB: next/prev item on current page\n" + " - RET/mouse-1: open item under cursor\n" + " - m: select an item on current page by name (autocompletes)\n" + " - u: return to previous page\n" + " - O: visit the root menu of the current server\n" + " - g: go to a particular gopher address\n" + " - i/I: info on item under cursor or current page\n" + " - c/C: copy URL representation of item under cursor or current page\n" + " - a/A: bookmark the item under cursor or current page\n" + " - x/X: remove bookmark for item under cursor or current page\n" + " - B: visit the bookmarks page\n" + " - r: redraw current page (using cached contents if available)\n" + " - R: reload current page (regenerates cache)\n" + " - T: toggle TLS mode\n" + " - d/D: download item under cursor or current page\n" + " - w: display the raw server response for the current page\n" + " - S: set an explicit character coding system (default is to autodetect)\n" + "\n" + "Start your exploration of gopher space:\n") + (elpher-insert-index-record "Floodgap Systems Gopher Server" + (elpher-make-address ?1 "" "gopher.floodgap.com" 70)) + (insert "\n" + "Alternatively, select the following item and enter some search terms:\n") + (elpher-insert-index-record "Veronica-2 Gopher Search Engine" + (elpher-make-address ?7 "/v2/vs" "gopher.floodgap.com" 70)) + (insert "\n" + "** Refer to the ") + (let ((help-string "RET,mouse-1: Open Elpher info manual (if available)")) + (insert-text-button "Elpher info manual" + 'face 'link + 'action (lambda (button) + (interactive) + (info "(elpher)")) + 'follow-link t + 'help-echo help-string)) + (insert " for the full documentation. **\n") + (insert (propertize + (concat " (This should be available if you have installed Elpher using\n" + " MELPA. Otherwise you will have to install the manual yourself.)") + 'face 'shadow)) (elpher-restore-pos))) ;; Bookmarks page node retrieval