[-- Attachment #1: Type: text/plain, Size: 1193 bytes --] Hi all, I am pretty sure that the following org-capture setup used to work, but it doesn’t seem to anymore. The intention is to manually select a date and use this with a custom date format (e.g. %<%Y/%m/%d>). (The custom date format is for ledger; I use this to capture ledger transations.) But it doesn’t work now (if it ever did – looking at git blame doesn’t help me figure out why it might have worked) without the attached patch, with passes along the custom time to format-time-string. Would it be a problem if this patch were applied? Thank you. best, Erik (defun egh:org-capture-ledger-file () (let* ((date (org-read-date nil t)) (filename (format "~/c/finances/%s.lgr" (format-time-string "%Y" date)))) (org-capture-put :default-time date) (set-buffer (org-capture-target-buffer filename)) (goto-char (point-max)))) (setq org-capture-templates '(("c" "Cash" plain (function egh:org-capture-ledger-file) "%<%Y/%m/%d> * %^{Payee} Expenses:Erik:Cash Expenses:%^{Account} $%^{Amount}" :empty-lines 1))) -- Sent from my free software system <http://fsf.org/>. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: fix-custom-time-string.diff --] [-- Type: text/plain; type=patch; name="fix-custom-time-string.diff"; charset=X-UNKNOWN, Size: 524 bytes --] diff --git a/lisp/org-capture.el b/lisp/org-capture.el index cbdf6f7..54f207d 100644 --- a/lisp/org-capture.el +++ b/lisp/org-capture.el @@ -1612,7 +1612,7 @@ The template may still contain \"%?\" for cursor positioning." ;; The current time (goto-char (point-min)) (while (re-search-forward "%<\\([^>\n]+\\)>" nil t) - (replace-match (format-time-string (match-string 1)) t t)) + (replace-match (format-time-string (match-string 1) ct) t t)) ;; Simple %-escapes (goto-char (point-min))
Hi Erik, using a custom date is done via `org-overriding-default-time' (within a let construct) instead of (org-capture-put :default-time date). Yes, the details are obscure and we need to better document this. Let us know if you achieve something, -- Bastien
At Mon, 28 Jul 2014 18:13:04 +0200, Bastien wrote: > > Hi Erik, > > using a custom date is done via `org-overriding-default-time' (within > a let construct) instead of (org-capture-put :default-time date). > > Yes, the details are obscure and we need to better document this. > > Let us know if you achieve something, Hi Bastien, Thanks so much for your reply. What I would like to do is have something a capture template string similar to %^t, but with a custom date format string, e.g. %^<%Y/%m/%d>. Is this possible in some way? I was using org-capture-put because that is how org-capture-set-target-location uses it for the file+datetree+prompt method. best, Erik -- Sent from my free software system <http://fsf.org/>.
Hi Erik,
Erik Hetzner <egh@e6h.org> writes:
> What I would like to do is have something a capture template string
> similar to %^t, but with a custom date format string, e.g.
> %^<%Y/%m/%d>. Is this possible in some way?
I'd use this in the capture template:
%(format-time-string "%Y/%m/%d" (org-time-string-to-time (org-read-date)))
but %^<...> would make sense to, I'll add it to the requested features.
HTH,
--
Bastien
Hi Bastien, At Tue, 29 Jul 2014 17:10:51 +0200, Bastien wrote: > > Hi Erik, > > Erik Hetzner <egh@e6h.org> writes: > > > What I would like to do is have something a capture template string > > similar to %^t, but with a custom date format string, e.g. > > %^<%Y/%m/%d>. Is this possible in some way? > > I'd use this in the capture template: > > %(format-time-string "%Y/%m/%d" (org-time-string-to-time (org-read-date))) > > but %^<...> would make sense to, I'll add it to the requested features. Of course! Thank you so much, again, for your help. best, Erik -- Sent from my free software system <http://fsf.org/>.