X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=elpher.git;a=blobdiff_plain;f=elpher.el;h=0391d21ab992abd25d186d14ed4c8145830b0cdf;hp=757748907ab5e3bdf0794a7ba8bc776a836eecfc;hb=595a76dcdb44e7ae7e6495b255ca0f0a2141d991;hpb=a20dd6f3661e06ad70debaad1d871ec71ac2c313 diff --git a/elpher.el b/elpher.el index 7577489..0391d21 100644 --- a/elpher.el +++ b/elpher.el @@ -5,6 +5,7 @@ ;; Copyright (C) 2021 Christopher Brannon ;; Copyright (C) 2021 Omar Polo ;; Copyright (C) 2021 Noodles! +;; Copyright (C) 2021 Abhiseck Paira ;; Copyright (C) 2020-2021 Alex Schroeder ;; Copyright (C) 2020 Zhiwei Chen ;; Copyright (C) 2020 condy0919 @@ -19,7 +20,7 @@ ;; Author: Tim Vaughan ;; Created: 11 April 2019 -;; Version: 3.0.0 +;; Version: 3.1.0 ;; Keywords: comm gopher ;; Homepage: https://thelambdalab.xyz/elpher ;; Package-Requires: ((emacs "27.1")) @@ -84,7 +85,7 @@ ;;; Global constants ;; -(defconst elpher-version "3.0.0" +(defconst elpher-version "3.1.0" "Current version of elpher.") (defconst elpher-margin-width 6 @@ -127,6 +128,7 @@ (defvar ansi-color-context) (defvar bookmark-make-record-function) (defvar mu4e~view-beginning-of-url-regexp) + (defvar eww-use-browse-url) (defvar thing-at-point-uri-schemes) (defvar xterm-color-preserve-properties)) @@ -587,6 +589,7 @@ previously-visited pages,unless NO-HISTORY is non-nil." (defmacro elpher-with-clean-buffer (&rest args) "Evaluate ARGS with a clean *elpher* buffer as current." + (declare (debug (body))) ;; Allow edebug to step through body `(with-current-buffer elpher-buffer-name (unless (eq major-mode 'elpher-mode) ;; avoid resetting buffer-local variables @@ -1128,13 +1131,16 @@ If ADDRESS is not supplied or nil the record is rendered as an (if (not data) nil (if (display-images-p) - (progn - (let ((image (create-image - data - nil t))) - (elpher-with-clean-buffer - (insert-image image) - (elpher-restore-pos)))) + (let* ((image (create-image + data + nil t)) + (window (get-buffer-window elpher-buffer-name))) + (when window + (setf (image-property image :max-width) (window-pixel-width window)) + (setf (image-property image :max-height) (window-pixel-height window))) + (elpher-with-clean-buffer + (insert-image image) + (elpher-restore-pos))) (elpher-render-download data)))) ;; Search retrieval and rendering @@ -1757,7 +1763,7 @@ This is rendered using `elpher-get-visited-pages-page' via `elpher-type-map'." (defun elpher-display-history-links (pages title) "Show all PAGES in an Elpher buffer with a given TITLE." - (let* ((title-line (concat "---- " title " ----")) + (let* ((title-line (concat " ---- " title " ----")) (footer-line (make-string (length title-line) ?-))) (elpher-with-clean-buffer (insert title-line "\n\n") @@ -1768,7 +1774,7 @@ This is rendered using `elpher-get-visited-pages-page' via `elpher-type-map'." (address (elpher-page-address page))) (elpher-insert-index-record display-string address)))) (insert "No history items found.\n")) - (insert "\n" footer-line "\n" + (insert "\n " footer-line "\n" "Select an entry or press 'u' to return to the previous page.") (elpher-restore-pos)))) @@ -1863,14 +1869,14 @@ To bookmark the link at point use \\[elpher-bookmark-link]." (elpher-with-clean-buffer (insert " ---- Elpher Bookmarks ---- \n\n") (bookmark-maybe-load-default-file) - (let ((bookmarks (bookmark-maybe-sort-alist))) - (if bookmarks - (dolist (bookmark bookmarks) - (let* ((name (car bookmark)) - (url (alist-get 'location (cdr bookmark))) - (address (elpher-address-from-url url))) - (elpher-insert-index-record name address))) - (insert "No bookmarked pages found.\n"))) + (dolist (bookmark (bookmark-maybe-sort-alist)) + (when (eq #'elpher-bookmark-jump (alist-get 'handler (cdr bookmark))) + (let* ((name (car bookmark)) + (url (alist-get 'location (cdr bookmark))) + (address (elpher-address-from-url url))) + (elpher-insert-index-record name address)))) + (when (<= (line-number-at-pos) 3) + (insert "No bookmarked pages found.\n")) (insert "\n --------------------------\n\n" "Select an entry or press 'u' to return to the previous page.\n\n" "Bookmarks can be renamed or deleted via the ") @@ -2016,6 +2022,12 @@ supports the old protocol elpher, where the link is self-contained." (setq mu4e~view-beginning-of-url-regexp "\\(?:https?\\|gopher\\|finger\\|gemini\\)://\\|mailto:") +;;; eww: + +;; Let elpher handle gemini, gopher links in eww buffer. +(setq eww-use-browse-url + "\\`mailto:\\|\\(\\`gemini\\|\\`gopher\\|\\`finger\\)://") + ;;; Interactive procedures ;;