Add bookmarks to eww

Like, regular ones.
This commit is contained in:
Case Duckworth 2021-09-27 18:18:54 -05:00
parent 0fbccf6e9b
commit 910e982e37
2 changed files with 60 additions and 15 deletions

37
init.el
View File

@ -483,6 +483,7 @@ In short, DO NOT USE THIS FUNCTION!!!"
(load (expand-file-name "eshell" user-emacs-directory))))))
(setup eww
(:also-load acdw-eww)
(defvar-local eww-readable-p nil
"Whether current buffer is in readable-mode.")
(:option eww-search-prefix "https://duckduckgo.com/html?q="
@ -497,23 +498,29 @@ In short, DO NOT USE THIS FUNCTION!!!"
(advice-add 'eww-render :after #'eww@is-not-readable)
(advice-add 'eww-back-url :after #'eww@is-not-readable)
(:hook #'reading-mode))
(:hook #'reading-mode
(defun bookmark-eww--setup ()
"Setup eww bookmark integration."
(setq-local bookmark-make-record-function #'bookmark-eww--make)))
(:bind "b" #'bookmark-set
"B" #'bookmark-jump
"M-n" nil
"M-p" nil))
(setup files
(:option
auto-save-file-name-transforms `((".*" ,(acdw/dir "auto-save/" t) t))
auto-save-list-file-prefix (acdw/dir "auto-save-list/.saves-" t)
auto-save-interval 60
auto-save-timeout 60
auto-save-visited-interval auto-save-timeout
backup-by-copying t
backup-directory-alist `((".*" . ,(acdw/dir "backup/" t)))
delete-old-versions t
mode-require-final-newline 'visit-save
tramp-backup-directory-alist backup-directory-alist
vc-make-backup-files t
version-control t)
(:option auto-save-file-name-transforms `((".*" ,(acdw/dir "auto-save/" t) t))
auto-save-list-file-prefix (acdw/dir "auto-save-list/.saves-" t)
auto-save-interval 60
auto-save-timeout 60
auto-save-visited-interval auto-save-timeout
backup-by-copying t
backup-directory-alist `((".*" . ,(acdw/dir "backup/" t)))
delete-old-versions t
mode-require-final-newline 'visit-save
tramp-backup-directory-alist backup-directory-alist
vc-make-backup-files t
version-control t)
(auto-save-visited-mode +1))
(setup find-func

38
lisp/acdw-eww.el Normal file
View File

@ -0,0 +1,38 @@
;;; acdw-eww.el --- EWW customizations -*- lexical-binding: t -*-
(require 'bookmark)
(require 'eww)
(defun bookmark-eww--make ()
"Make eww bookmark record."
`((filename . ,(plist-get eww-data :url))
(title . ,(plist-get eww-data :title))
(time . ,(current-time-string))
(handler . ,#'bookmark-eww-handler)
(defaults . (,(concat
;; url without the https and path
(replace-regexp-in-string
"/.*" ""
(replace-regexp-in-string
"\\`https?://" ""
(plist-get eww-data :url)))
" - "
;; page title
(replace-regexp-in-string
"\\` +\\| +\\'" ""
(replace-regexp-in-string
"[\n\t\r ]+" " "
(plist-get eww-data :title))))))))
(defun bookmark-eww-handler (bm)
"Handler for eww bookmarks."
(eww-browse-url (alist-get 'filename bm)))
(defun bookmark-eww--setup ()
"Setup eww bookmark integration."
(setq-local bookmark-make-record-function #'bookmark-eww--make))
(provide 'acdw-eww)
;;; acdw-eww.el ends here