diff options
author | JSDurand <mmemmew@gmail.com> | 2021-12-09 16:02:06 +0800 |
---|---|---|
committer | JSDurand <mmemmew@gmail.com> | 2021-12-09 16:02:06 +0800 |
commit | 8416e814e4426aa688af8be7d4be3150be33ea66 (patch) | |
tree | 95073f1269533f3aae0e46c6cba91ab69f94dfdc /eww-conf.el | |
parent | 5aae910f1061dc279ff15ca5843b8e05f31de753 (diff) |
eww-conf: record the readability status as well
* eww-conf.el (durand-eww-readable-p): a variable that records if the
current buffer is in the readable mode.
(eww-non-readable-h, eww-readable-h): set the buffer to the correct
readable mode.
(eww-after-render-hook): add a hook to set the buffer to non-readable
mode.
(#'eww-readable): add an advice to set the buffer to readable mode.
(durand-eww-bookmark-make-record): record the readability status of
the buffer.
(durand-eww-bookmark-jump): if the bookmark records a readable buffer,
enter readable mode when opening it.
* org-conf.el (durand-org-publish-sitemap): fix a small typo
Diffstat (limited to 'eww-conf.el')
-rw-r--r-- | eww-conf.el | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/eww-conf.el b/eww-conf.el index 3faa82d..1f6ff46 100644 --- a/eww-conf.el +++ b/eww-conf.el @@ -396,11 +396,34 @@ For the meanings of NAME and DIR, see the documentation of ;;; Bookmark integration -;; This section defines functions to make bookmarks for EWW buffers -;; and to jump to those bookmarks. +;;;; Readbable mode distinction + +;; This section modifies the behaviour of `eww-readable' so that when +;; we are viewing readable parts of the webpage, there is a variable +;; saying so. + +(defvar durand-eww-readable-p nil + "If non-nil, we are viewing the readable parts of a webpage.") + +(make-variable-buffer-local 'durand-eww-readable-p) + +(defun eww-non-readable-h () + "Set `durand-eww-readable-p' to nil." + (setq-local durand-eww-readable-p nil)) + +(defun eww-readable-h () + "Set `durand-eww-readable-p' to t." + (setq-local durand-eww-readable-p t)) + +(add-hook 'eww-after-render-hook #'eww-non-readable-h) + +(advice-add #'eww-readable :after #'eww-readable-h) ;;;; Making records +;; This section defines functions to make bookmarks for EWW buffers +;; and to jump to those bookmarks. + (defun durand-eww-bookmark-make-record () "Return a bookmark record for the current page." (cond @@ -409,6 +432,7 @@ For the meanings of NAME and DIR, see the documentation of (let* ((url (plist-get eww-data :url)) (title (format "(EWW) %s" (plist-get eww-data :title))) (position (point)) + (readablep durand-eww-readable-p) (defaults (delq nil (list 'defaults title url)))) (cond ((null url) (user-error "No link for the current page"))) @@ -417,6 +441,7 @@ For the meanings of NAME and DIR, see the documentation of title (cons 'location url) (cons 'handler #'durand-eww-bookmark-jump) + (cons 'readablep readablep) defaults) (bookmark-make-record-default 'no-file nil position)))) @@ -526,6 +551,11 @@ Otherwise, fetch URL and afterwards try to restore the point." (lambda () (remove-hook 'eww-after-render-hook function-symbol) + ;; if the bookmark records a readable webpage, + ;; enter readable mode again. + (cond + ((bookmark-prop-get bookmark 'readablep) + (eww-readable))) (bookmark-default-handler (list "" (cons 'buffer buffer) |