I want to create a capture template which prompts for certain properties in a property draw, but alos creates some other properties without prompting for a value. However, I am having trouble mixing properties which are entered by the user and blank properties. The following example shows what I mean:

#+begin_src emacs-lisp
(defun capture-letter-file (path)
  (let ((name (read-string "File name: ")))
    (expand-file-name (format "%s-%s.org"
                              (format-time-string "%Y-%m-%d")
                              name) path)))

("z"
   "Letter template"
   plain
   (file (capture-letter-file  "~/dropbox/org/org_files/letters"))
"#+STARTUP: showall indent\n#+STARTUP: hidestars\n#+OPTIONS: H:2 num:nil tags:nil toc:nil timestamps:nil\n* Letter\n:PROPERTIES:\n:to_address:%^{salutation}p %^{to_name}p %^{subject}p %^{the_closing}p:END:\n
")

#+end_src
This produces:

#+STARTUP: showall indent
#+STARTUP: hidestars
#+OPTIONS: H:2 num:nil tags:nil toc:nil timestamps:nil
* Letter
:PROPERTIES:
:salutation: aaa
:to_name:  bbb
:subject:  ccc
:the_closing: zzz
:END:
:to_address:   :END:

Note the two :END: values and the :to_address: is placed outside the values for which the user was prompted. I have tried omitting the :PROPERTIES: and :END: from the template and letting org create them, but still end up with the :to_address: property being placed outside the property draw.

Ian.

Reply via email to