summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Meyer <kyle@kyleam.com>2020-05-12 00:46:51 -0400
committerKyle Meyer <kyle@kyleam.com>2020-05-12 00:55:58 -0400
commit58d3961b06f73baa33e8defe52710d708324f428 (patch)
treee79adfd653764f37c709f8a751f0691fe32b240f
parent486552c2903cc252e1839589b41c4becc80f313d (diff)
downloadpiem-58d3961b06f73baa33e8defe52710d708324f428.tar.gz
piem: Define extended link regexp and use in elfeed
The links in Elfeed entries only need the restricted variant, but the extended one will be useful for EWW support.
-rw-r--r--piem-elfeed.el9
-rw-r--r--piem.el13
2 files changed, 15 insertions, 7 deletions
diff --git a/piem-elfeed.el b/piem-elfeed.el
index b5e7dc8..979c5ed 100644
--- a/piem-elfeed.el
+++ b/piem-elfeed.el
@@ -35,23 +35,18 @@
:link '(info-link "(piem)Elfeed integration")
:group 'piem)
-(defvar piem-elfeed--link-re
- (rx "/" (group (one-or-more (not (any "/" "\n"))))
- "/" (group (one-or-more (not (any "/" "\n"))))
- "/" string-end))
-
(defun piem-elfeed-get-inbox ()
"Return inbox name from an `elfeed-show-mode' buffer."
(when (derived-mode-p 'elfeed-show-mode)
(when-let ((link (elfeed-entry-link elfeed-show-entry)))
- (and (string-match piem-elfeed--link-re link)
+ (and (string-match piem-link-re link)
(match-string 1 link)))))
(defun piem-elfeed-get-mid ()
"Return the message ID of an `elfeed-show-mode' buffer."
(when (derived-mode-p 'elfeed-show-mode)
(when-let ((link (elfeed-entry-link elfeed-show-entry)))
- (and (string-match piem-elfeed--link-re link)
+ (and (string-match piem-link-re link)
(match-string 2 link)))))
(define-minor-mode piem-elfeed-mode
diff --git a/piem.el b/piem.el
index 872da22..f014cbc 100644
--- a/piem.el
+++ b/piem.el
@@ -87,6 +87,19 @@ should return a function that takes no arguments and inserts the
mbox's contents in the current buffer."
:type 'hook)
+(defvar piem-link-re
+ (rx "/" (group (one-or-more (not (any "/" "\n"))))
+ "/" (group (one-or-more (not (any "/" "\n"))))
+ "/" (group (zero-or-one
+ (or "raw"
+ "t.mbox.gz"
+ (and (or "t" "T") "/#"
+ (one-or-more (not (any "/" "\n")))))))
+ string-end)
+ "Regular expression matching public-inbox HTTP link.
+The first group is the inbox, the second is the message ID, and
+the rest is any trailing endpoint.")
+
(defun piem-inbox-by-header-match ()
"Return inbox based on matching message headers.
This should be called from a buffer containing a message and is