emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Add %L (the link content *not* as a full link) to Capture expans


From: Samuel W. Flint
Subject: [PATCH] Add %L (the link content *not* as a full link) to Capture expansions
Date: Wed, 09 Sep 2020 19:13:22 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hello,

In an attempt at automating a part of my workflow, I found that
org-capture's %l didn't quite fit what I needed.  Normally,
org-store-link does the right thing, but for some capture tasks, I want
to custom generate the description, so %l doesn't work.  I've attached a
patch that adds %L, a version that doesn't add the link brackets.

Thanks,

Sam Flint

-- 
Samuel W. Flint
4096R/FA13D704
      (F50D 862B 4F65 5943 A8C2  EF0E 86C9 3E7A FA13 D704)

diff --git i/lisp/org-capture.el w/lisp/org-capture.el
index 2cc1ce394..e638eabfa 100644
--- i/lisp/org-capture.el
+++ w/lisp/org-capture.el
@@ -308,6 +308,7 @@ be replaced with content and expanded:
   %a          Annotation, normally the link created with `org-store-link'.
   %A          Like %a, but prompt for the description part.
   %l          Like %a, but only insert the literal link.
+  %L          Like %l, but no brackets (the link content itself).
   %c          Current kill ring head.
   %x          Content of the X clipboard.
   %k          Title of currently clocked task.
@@ -1574,6 +1575,9 @@ The template may still contain \"%?\" for cursor 
positioning."
         (v-l (if (and v-a (string-match l-re v-a))
                  (replace-match "[[\\1]]" nil nil v-a)
                v-a))
+        (v-L (if (or v-a (string-match l-re v-a))
+                 (replace-match "\\1" nil nil v-a)
+               v-a))
         (v-n user-full-name)
         (v-k (if (marker-buffer org-clock-marker)
                  (org-no-properties org-clock-heading)
@@ -1626,7 +1630,7 @@ The template may still contain \"%?\" for cursor 
positioning."
       ;; Mark %() embedded elisp for later evaluation.
       (org-capture-expand-embedded-elisp 'mark)
       ;; Expand non-interactive templates.
-      (let ((regexp 
"%\\(:[-A-Za-z]+\\|<\\([^>\n]+\\)>\\|[aAcfFikKlntTuUx]\\)"))
+      (let ((regexp 
"%\\(:[-A-Za-z]+\\|<\\([^>\n]+\\)>\\|[aAcfFikKlLntTuUx]\\)"))
        (save-excursion
          (while (re-search-forward regexp nil t)
            ;; `org-capture-escaped-%' may modify buffer and cripple
@@ -1663,6 +1667,7 @@ The template may still contain \"%?\" for cursor 
positioning."
                          (?k v-k)
                          (?K v-K)
                          (?l v-l)
+                         (?L v-L)
                          (?n v-n)
                          (?t v-t)
                          (?T v-T)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]