diff options
author | Kyle Meyer <kyle@kyleam.com> | 2020-05-12 00:57:06 -0400 |
---|---|---|
committer | Kyle Meyer <kyle@kyleam.com> | 2020-05-12 00:57:06 -0400 |
commit | 50bb0778bb1ea88e18eb11a1520c257b30c08ee0 (patch) | |
tree | 11727afc23c3c105638a857526924ca1b8ae2879 | |
parent | 58d3961b06f73baa33e8defe52710d708324f428 (diff) | |
download | piem-50bb0778bb1ea88e18eb11a1520c257b30c08ee0.tar.gz |
Add basic support for EWW buffers
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | piem-eww.el | 66 | ||||
-rw-r--r-- | piem.texi | 4 |
3 files changed, 72 insertions, 1 deletions
@@ -5,7 +5,8 @@ BATCH = emacs -Q --batch -L . all: loadpath piem.info piem.elc \ - piem-b4.elc piem-elfeed.elc piem-gnus.elc piem-notmuch.elc + piem-b4.elc piem-elfeed.elc piem-eww.elc \ + piem-gnus.elc piem-notmuch.elc .PHONY: clean clean: diff --git a/piem-eww.el b/piem-eww.el new file mode 100644 index 0000000..eb96214 --- /dev/null +++ b/piem-eww.el @@ -0,0 +1,66 @@ +;;; piem-eww.el --- EWW integration for piem -*- lexical-binding: t; -*- + +;; Copyright (C) 2020 Kyle Meyer + +;; Author: Kyle Meyer <kyle@kyleam.com> +;; Keywords: vc, tools +;; Version: 0.0.0 +;; Package-Requires: ((emacs "26.3")) + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <https://www.gnu.org/licenses/>. + +;;; Commentary: + +;; + +;;; Code: + +(require 'eww) +(require 'piem) + +(defgroup piem-eww nil + "EWW integration for piem." + :link '(info-link "(piem)EWW integration") + :group 'piem) + +(defun piem-eww-get-inbox () + "Return inbox name from an EWW buffer." + (when (derived-mode-p 'eww-mode) + (when-let ((link (plist-get eww-data :url))) + (and (string-match piem-link-re link) + (match-string 1 link))))) + +(defun piem-eww-get-mid () + "Return the message ID of an EWW buffer." + (when (derived-mode-p 'eww-mode) + (when-let ((link (plist-get eww-data :url))) + (and (string-match piem-link-re link) + (match-string 2 link))))) + +(define-minor-mode piem-eww-mode + "Toggle EWW support for piem. +With a prefix argument ARG, enable piem-eww mode if ARG is +positive, and disable it otherwise. If called from Lisp, enable +the mode if ARG is omitted or nil." + :global t + :init-value nil + (if piem-eww-mode + (progn + (add-hook 'piem-get-inbox-functions #'piem-eww-get-inbox) + (add-hook 'piem-get-mid-functions #'piem-eww-get-mid)) + (remove-hook 'piem-get-inbox-functions #'piem-eww-get-inbox) + (remove-hook 'piem-get-mid-functions #'piem-eww-get-mid))) + +;;; piem-eww.el ends here +(provide 'piem-eww) @@ -49,6 +49,7 @@ This manual is for piem version @value{VERSION}. * Notmuch integration:: * Gnus integration:: * Elfeed integration:: +* EWW integration:: * Related tools:: * Contributing:: @@ -80,6 +81,9 @@ Indices @node Elfeed integration @chapter Elfeed integration +@node EWW integration +@chapter EWW integration + @node Related tools @chapter Related tools |