discussion and development of piem
 help / color / mirror / code / Atom feed
From: Kyle Meyer <kyle@kyleam.com>
To: Xinglu Chen <public@yoctocell.xyz>
Cc: piem@inbox.kyleam.com
Subject: Re: [PATCH] notmuch: Configure mailing list archive links
Date: Fri, 05 Feb 2021 23:54:09 -0500	[thread overview]
Message-ID: <878s81kd8u.fsf@kyleam.com> (raw)
In-Reply-To: <2ffe23775ec008feb763e24c29786fc5feddb975.1612544763.git.public@yoctocell.xyz>

Xinglu Chen writes:

> This adds an entry to `notmuch-show-stash-ml-archive-link-alist` that
> reads the `piem-inboxes` variable and returns the public-inbox archive
> url.  This means that users don't have to manually add public-inbox
> archive urls to `notmuch-show-stash-ml-archive-link-alist`.

Nice idea.  I regularly use notmuch-show-stash-mlarchive-link with
public-inbox targets and will happily drop my manual entries :)

I've considered something related in the past: adding a command in the
piem-dispatch transient that essentially does

  (when-let ((inbox (piem-inbox)))
      (concat (piem--ensure-trailing-slash (piem-inbox-get :url inbox))
               (or (piem-mid)
                    "No message ID found for the current buffer")))))))

In notmuch, I'm already too accustomed to using
notmuch-show-stash-mlarchive-link (and more generally
notmuch-show-stash-map), but I think I'd occasionally find the above
useful in Gnus.  Hmm, perhaps I'll add such a command this weekend,
along with a section in the manual where we can mention it as well as
the notmuch-show-stash-mlarchive-link support added by this patch.

> diff --git a/piem-notmuch.el b/piem-notmuch.el
> index 5c0cd62..52d9198 100644
> --- a/piem-notmuch.el
> +++ b/piem-notmuch.el
> @@ -106,6 +106,13 @@ (defun piem-notmuch-am-ready-mbox ()
>                      (insert patch)))
>                  "mbox"))))))
> +(defun piem-notmuch-show-get-public-inbox-link (mid)
> +  "Given the message-id MID, return the public-inbox url.
> +This will lookup the url in the `piem-inboxes' variable."
> +  (let* ((inbox (piem-inbox-by-header-match))
> +        (link (piem-inbox-get :url inbox)))
> +    (concat link mid)))

This will usually work, but

  * mid should be escaped with piem-escape-mid.

  * piem-inbox-by-header-match should be executed within
    piem-notmuch--with-current-message so that it can match against the
    full set of headers (which is important for matching the list ID).

    Better yet, just use piem-notmuch-get-inbox, which already does

  * What about in cases where there is no inbox/url?  Right now it would
    just return the plain message ID.  Should it signal a user-error

> +
>  ;;;###autoload
>  (define-minor-mode piem-notmuch-mode
>    "Toggle Notmuch support for piem.
> @@ -119,11 +126,18 @@ (define-minor-mode piem-notmuch-mode
>          (add-hook 'piem-am-ready-mbox-functions #'piem-notmuch-am-ready-mbox)
>          (add-hook 'piem-get-inbox-functions #'piem-notmuch-get-inbox)
>          (add-hook 'piem-get-mid-functions #'piem-notmuch-get-mid)
> -        (add-hook 'piem-mid-to-thread-functions #'piem-notmuch-mid-to-thread))
> +        (add-hook 'piem-mid-to-thread-functions #'piem-notmuch-mid-to-thread)
> +        (add-to-list 'notmuch-show-stash-mlarchive-link-alist
> +                     '("piem" . piem-notmuch-show-get-public-inbox-link))
> +        (setq notmuch-show-stash-mlarchive-link-default "piem"))

I'd rather not override the user's
notmuch-show-stash-mlarchive-link-default setting (even if we were to
only do so for the default value of "Gmane", which we know is
nonfunctional and not likely coming back at this point).  Instead, how
about just mentioning notmuch-show-stash-mlarchive-link support in
piem-notmuch-mode's docstring along with a suggestion to set
notmuch-show-stash-mlarchive-link-default to "piem"?

  reply	other threads:[~2021-02-06  4:54 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-05 17:10 [PATCH] notmuch: Configure mailing list archive links Xinglu Chen
2021-02-06  4:54 ` Kyle Meyer [this message]
2021-02-06  8:07   ` Xinglu Chen
2021-02-06  8:44 ` [PATCH v2] " Xinglu Chen
2021-02-06 15:58   ` Kyle Meyer
2021-02-06 16:17     ` Xinglu Chen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

  List information: https://git.kyleam.com/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878s81kd8u.fsf@kyleam.com \
    --to=kyle@kyleam.com \
    --cc=piem@inbox.kyleam.com \
    --cc=public@yoctocell.xyz \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).