X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=elpher.git;a=blobdiff_plain;f=elpher.el;h=b4b62d810f5d2bd559e185f0d32f10a2390a0976;hp=b5373f42ebbd33990b6256e13620ea6f9079db7d;hb=ee20acda381ecea47db0d48c8d495bd17f86348e;hpb=cfdf41446b4f6fe488d378f7702f7193b247206c diff --git a/elpher.el b/elpher.el index b5373f4..b4b62d8 100644 --- a/elpher.el +++ b/elpher.el @@ -26,8 +26,8 @@ ;;; Commentary: -;; Elpher aims to provide a practical and friendly gopher client -;; for GNU Emacs. It supports: +;; Elpher aims to provide a practical and friendly gopher, gemini, +;; and finger client for GNU Emacs. It supports: ;; - intuitive keyboard and mouse-driven browsing, ;; - out-of-the-box compatibility with evil-mode, @@ -265,6 +265,7 @@ The basic attributes include: TYPE, SELECTOR, HOST and PORT. If the optional attribute TLS is non-nil, the address will be marked as requiring gopher-over-TLS." (cond + ((equal type ?i) nil) ((and (equal type ?h) (string-prefix-p "URL:" selector)) (elpher-address-from-url (elt (split-string selector "URL:") 1))) @@ -698,7 +699,7 @@ If ADDRESS is not supplied or nil the record is rendered as an 'follow-link t 'help-echo (elpher-page-button-help page))) (pcase type - ((or '(gopher ?i) 'nil) ;; Information + ('nil ;; Information (elpher-insert-margin) (let ((propertized-display-string (propertize display-string 'face 'elpher-info))) @@ -1046,7 +1047,7 @@ that the response was malformed." ((pred (string-prefix-p "image/")) (elpher-render-image body)) (_other - (error "Unsupported MIME type %S" mime-type)))))) + (elpher-render-download body)))))) (defun elpher-gemini-get-link-url (link-line) "Extract the url portion of LINK-LINE, a gemini map file link line. @@ -1282,7 +1283,7 @@ by HEADER-LINE." " - m: select an item on current page by name (autocompletes)\n" " - u/mouse-3: return to previous page\n" " - o/O: visit different selector or the root menu of the current server\n" - " - g: go to a particular gopher address\n" + " - g: go to a particular address (gopher, gemini, finger)\n" " - d/D: download item under cursor or current page\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" @@ -1299,9 +1300,11 @@ by HEADER-LINE." (elpher-insert-index-record "Floodgap Systems Gopher Server" (elpher-make-gopher-address ?1 "" "gopher.floodgap.com" 70)) (insert "\n" - "Alternatively, select the following item and enter some search terms:\n") + "Alternatively, select a search engine and enter some search terms:\n") (elpher-insert-index-record "Veronica-2 Gopher Search Engine" (elpher-make-gopher-address ?7 "/v2/vs" "gopher.floodgap.com" 70)) + (elpher-insert-index-record "GUS Gemini Search Engine" + (elpher-address-from-url "gemini://gus.guru/search")) (insert "\n" "This page contains your bookmarked sites (also visit with B):\n") (elpher-insert-index-record "Your Bookmarks" 'bookmarks) @@ -1692,6 +1695,7 @@ When run interactively HOST-OR-URL is read from the minibuffer." (let ((map (make-sparse-keymap))) (define-key map (kbd "TAB") 'elpher-next-link) (define-key map (kbd "") 'elpher-prev-link) + (define-key map (kbd "C-M-i") 'elpher-prev-link) (define-key map (kbd "u") 'elpher-back) (define-key map [mouse-3] 'elpher-back) (define-key map (kbd "O") 'elpher-root-dir)