From 200692bb1fb8acdcc467862d92a1d24ac3e381bc Mon Sep 17 00:00:00 2001 From: jao Date: Tue, 7 Jun 2022 23:48:59 +0100 Subject: desorgification --- eww.org | 191 ---------------------------------------------------------------- 1 file changed, 191 deletions(-) delete mode 100644 eww.org (limited to 'eww.org') diff --git a/eww.org b/eww.org deleted file mode 100644 index 4a9dd71..0000000 --- a/eww.org +++ /dev/null @@ -1,191 +0,0 @@ -#+property: header-args :lexical t :tangle yes :comments yes :results silent :shebang ";; -*- lexical-binding: t -*-" :tangle-mode (identity #o644) -#+title: Web browsing using eww - -* Integration with browse-url and afio - #+begin_src emacs-lisp - (defun jao-eww-browse-url (url &rest r) - "Browse URL using eww." - (if (derived-mode-p 'eww-mode) - (eww url) - (jao-afio--goto-www) - (select-window (frame-first-window)) - (let* ((url (url-encode-url url)) - (bf (seq-find `(lambda (b) - (with-current-buffer b - (string= ,url - (url-encode-url (eww-current-url))))) - (jao-eww-session--list-buffers)))) - (cond (bf (switch-to-buffer bf)) - ((string-match-p url "^file://") (eww-open-file url)) - (t (eww url 4)))))) - - (setq jao-browse-url-function #'jao-eww-browse-url) - (setq eww-use-browse-url "^\\(gemini\\|gopher\\):") - #+end_src -* Opening URLs - #+begin_src emacs-lisp - (defun jao-eww-copy-link () - (interactive) - (when-let (lnk (or (car (eww-links-at-point)) (eww-current-url))) - (message "%s" lnk) - (kill-new lnk))) - - (defun jao-eww-browse (arg) - (interactive "P" eww-mode) - (setq eww-prompt-history - (cl-remove-duplicates eww-prompt-history :test #'string=)) - (let ((url (completing-read (if arg "eww in new buffer: " "eww: ") - eww-prompt-history nil nil nil - 'eww-prompt-history (eww-current-url)))) - (eww url (when arg 4)))) - - (defun jao-eww-browse-new () - (interactive nil eww-mode) - (jao-eww-browse t)) - - (defun jao-eww-reload (images) - (interactive "P" eww-mode) - (if images - (let ((shr-blocked-images nil)) - (eww-reload t)) - (call-interactively 'eww-reload))) - #+end_src -* Consult narrowing - #+begin_src emacs-lisp - (with-eval-after-load "consult" - (defvar jao-eww-consult-history nil) - (defvar jao-eww-buffer-source - (list :name "eww buffer" - :category 'eww-buffer - :hidden t - :narrow (cons ?e "eww") - :annotate (lambda (c) (get-text-property 0 'url c)) - :history 'jao-eww-consult-history - :action (lambda (b) - (jao-afio--goto-www) - (switch-to-buffer (get-text-property 0 'buffer b))) - :items - (lambda () - (seq-map (lambda (b) - (with-current-buffer b - (let ((tl (or (plist-get eww-data :title) "")) - (url (or (eww-current-url) (buffer-name)))) - (propertize (if (string-blank-p tl) url tl) - 'buffer b 'url url)))) - (seq-filter #'jao-www--buffer-p (buffer-list)))))) - (jao-consult-add-buffer-source 'jao-eww-buffer-source "Web" ?e)) - #+end_src -* Images - #+begin_src emacs-lisp - (defun jao-eww-next-image () - (interactive nil eww-mode) - (when-let (p (text-property-search-forward 'image-displayer nil nil t)) - (goto-char (prop-match-beginning p)))) - #+end_src -* Close page and reopen - #+begin_src emacs-lisp - (defvar jao-eww--closed-urls ()) - - (defun jao-eww-close () - (interactive nil eww-mode) - (when-let (current (eww-current-url)) - (add-to-list 'jao-eww--closed-urls current)) - (let ((nxt (car (jao-eww-session-invisible-buffers)))) - (kill-current-buffer) - (when nxt (switch-to-buffer nxt nil t)))) - - (defun jao-eww-reopen (arg) - (interactive "P") - (if (> (length jao-eww--closed-urls) 0) - (let ((url (completing-read "URL: " jao-eww--closed-urls))) - (jao-afio--goto-www) - (setq jao-eww--closed-urls (remove url jao-eww--closed-urls)) - (eww url (when arg 4))) - (message "No previously closed URLs."))) - - (defun jao-eww-reopen-new () - (interactive) - (jao-eww-reopen t)) - #+end_src -* Sessions - #+begin_src emacs-lisp - (use-package jao-eww-session - :custom ((jao-eww-session-file "~/.emacs.d/cache/eww-session.eld"))) - #+end_src -* Package - #+begin_src emacs-lisp - (use-package shr - :custom ((shr-width nil) - (shr-use-colors t) - (shr-use-fonts t) - (shr-max-width 130) - (shr-blocked-images nil) - (shr-inhibit-images t) - (shr-max-image-proportion 1.0) - (shr-hr-line ?―))) - - (use-package eww - :demand t - :custom ((eww-browse-url-new-window-is-tab nil) - (eww-download-directory jao-sink-dir) - (eww-header-line-format " %u") - (eww-form-checkbox-selected-symbol "☒") - (eww-buffer-name-length 180)) - - :config - (with-eval-after-load "org" (require 'ol-eww nil t)) - - (defun jao-eww-buffer-name () - (when-let ((s (or (plist-get eww-data :title) - (plist-get eww-data :url)))) - (when (not (string-blank-p s)) (format "%s" s)))) - (setq eww-auto-rename-buffer #'jao-eww-buffer-name) - - :bind (:map eww-mode-map (("b" . eww-back-url) - ("B" . eww-forward-url) - ("d" . jao-download) - ("f" . link-hint-open-link) - ("F" . embark-on-link) - ("L" . eww-forward-url) - ("N" . jao-eww-next-image) - ("o" . jao-eww-browse) - ("O" . jao-eww-browse-new) - ("r" . jao-eww-reload) - ("s" . eww-search-words) - ("S" . jao-eww-browse-new) - ("u" . jao-eww-reopen) - ("U" . jao-eww-reopen-new) - ("w" . org-eww-copy-for-org-mode) - ("q" . jao-eww-close) - ("x" . jao-rss-subscribe) - ("y" . jao-eww-copy-link) - ("\\" . eww-view-source) - ("C-c C-w" . jao-eww-close) - ("M-i" . eww-toggle-images)))) - - #+end_src -* Fixes for shr image rendering - #+begin_src emacs-lisp - (require 'shr) - - (defun jao-shr--kill-nl (p) - (save-excursion - (goto-char p) - (when (looking-at-p "\n") (delete-char 1)))) - - (defun jao-shr-tag-img (fn &rest args) - (let ((p (point))) - (prog1 (apply fn args) - (when (> (point) p) (jao-shr--kill-nl p))))) - - (defun jao-shr-insert (fn &rest args) - (let ((p (when (and (not (bolp)) - (get-text-property (1- (point)) 'image-url)) - (point)))) - (prog1 (apply fn args) - (when (and p (> (point) p)) (jao-shr--kill-nl p))))) - - (advice-add 'shr-tag-img :around #'jao-shr-tag-img) - (advice-add 'shr-insert :around #'jao-shr-insert) - - #+end_src -- cgit v1.2.3