X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=elpher.git;a=blobdiff_plain;f=elpher.el;h=e3cd29a250373283d57c54fb489e699ea9cfc7ca;hp=4e69967583a530950555e4c248a5c80d5c98c0ea;hb=6ad13d2a6121676f0b82a037679d7c2be8b9238e;hpb=ce5cd208ce378fd4fd286f5c701e206d3208d9f3 diff --git a/elpher.el b/elpher.el index 4e69967..e3cd29a 100644 --- a/elpher.el +++ b/elpher.el @@ -1798,9 +1798,19 @@ record for the current elpher page." ;;;###autoload (defun elpher-bookmark-jump (bookmark) - "Go to a particular BOOKMARK." - (let* ((url (cdr (assq 'location bookmark)))) - (elpher-go url))) + "Handler used to open a bookmark using elpher. +The argument BOOKMARK is a bookmark record passed to the function. +This handler is responsible for loading the bookmark in some buffer, +then making that buffer the current buffer. It should not switch +to the buffer." + (let* ((url (cdr (assq 'location bookmark))) + (cleaned-url (string-trim url)) + (address (elpher-address-from-url cleaned-url)) + (page (elpher-make-page cleaned-url address))) + (elpher-with-clean-buffer + (elpher-visit-page page)) + (set-buffer (get-buffer elpher-buffer-name)) + nil)) (defun elpher-bookmark-link () "Bookmark the link at point. @@ -2240,7 +2250,8 @@ functions which initialize the client, namely (setq-local elpher-history nil) (setq-local elpher-buffer-name (buffer-name)) (setq-local bookmark-make-record-function #'elpher-bookmark-make-record) - (setq-local imenu-create-index-function (lambda () elpher--gemini-page-headings))) + (setq-local imenu-create-index-function (lambda () elpher--gemini-page-headings)) + (setq-local xterm-color-preserve-properties t)) (when (fboundp 'evil-set-initial-state) (evil-set-initial-state 'elpher-mode 'motion))