emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <carsten.dominik@gmail.com>
To: Giovanni Ridolfi <giovanni.ridolfi@yahoo.it>
Cc: emacs-orgmode@gnu.org
Subject: Re: Bug: capture with PROPERTIES [7.3 commit-972b0a58...]
Date: Tue, 4 Jan 2011 13:57:24 +0100	[thread overview]
Message-ID: <6DE91187-59F0-4AA3-9487-A758CEB6D5DE@gmail.com> (raw)
In-Reply-To: <83zksdhlqg.fsf@yahoo.it>

Hi Giovanny,

you are using the property prompt in an incorrect way.

The %^{Element}p can be anywhere in the template.  It
will be removed *entirely*, and a corresponding property
will be added in the property drawer.  So you are not
supposed to put this on a line by itself inside a
property drawer, because removing the % prompt will
then leave an empty line.  In fact, supplying the
drawer is not necessary at all, it will be created
as needed.  So if you were to prompt for all
properties, you could write the template it like this:

*** %^{prompt}
     %^{ID}p %^{Element}p %^{Number}p %^{Type}p %^{Feeling}p  
%^{Comment}p

But since you want to put some properties in later
by hand, your template should probably look like this:

*** %^{prompt}
     %^{Element}p %^{Number}p %^{Type}p
     :PROPERTIES:
     :ID: lab
     :Feeling: %?
     :Comment:
     :END:

But in this case you are not in control of the sequence in
which these properties will end up in the drawer.  For maximum
control, you might want to use a normal prompt for the values,
avoiding the property prompt interface entirely:

*** %^{prompt}
     :PROPERTIES:
     :ID: lab
     :Element: %^{Element}
     :Number: %^{Number}
     :Type: %^{Type}
     :Feeling: %?
     :Comment:
     :END:

Note the missing "p" after the %{...} prompts.

Hope this helps.  Maybe you want to suggest a patch
for the manual to make this clearer?

- Carsten


On Dec 10, 2010, at 1:10 PM, Giovanni Ridolfi wrote:

>
> Remember to cover the basics, that is, what you expected to happen and
> what in fact did happen.  You don't know how to make a good report?   
> See
>
>     http://orgmode.org/manual/Feedback.html#Feedback
>
> Your bug report will be posted to the Org-mode mailing list.
> ------------------------------------------------------------------------
>
> Emacs  : GNU Emacs 23.2.1 (i386-mingw-nt5.1.2600)
> of 2010-05-08 on G41R2F1
> Package: Org-mode version 7.3  
> commit-972b0a581eff180bcdc15883d2fe30c4cc24996a
>
>
> Hello everyone,
>
> I found a bug in the insertion of PROPERTies in capture templates.
>
> ------------------------ TEST FILE: ------------------
>     -*- mode: org; -*-
>
> (setq org-capture-templates
> '(
> ("q" "element" entry (file+headline "test.org" "capture") "***  
> %^{prompt} \n :PROPERTIES:\n :ID: lab \n %^{Element}p  \n  
> %^{Number}p \n %^{Type}p \n :Feeling: %? \n :Comment:  \n :END:"
> )
> ))
> * capture
> :PROPERTIES:
> :Element_ALL: H He Li Na Hg
> :Number_ALL:  1  2  3 4  80
> :Type_ALL: gas solid liquid
> :END:
>
> -----------------------------------
> 1. set my capture template
> 2. call capture template.
> 3. Enter headline: "first test", <RET>
>   so far so good.
> 4. Now you are requested to insert a PROPERTY
>   and the buffer appears as:
>
> -------------------- 4th  step --------------
> ***  first test
> :PROPERTIES:
> :ID: lab
>
> %^{Number}p
> %^{Type}p
> :Feeling: %?
> :Comment:
> :END:
> ----------------------
> Value for Element:  ||   cursor is here
> --------------------
> ------------------------------------------------
>
> 5. enter He <RET>
>
> BUG: the layout of the buffer is broken:
>
> ---------------------------
> *** first test
> :PROPERTIES:
> :ID: lab
>                      -------|  a blank line is here
>                             |
> %^{Type}p                   |
> :Feeling: %?                |
> :Comment:                   |
> :Element:  He       <-------|  the property is inserted here!
> :END:
> ----------------------
> Value for Number:  ||   (cursor is here)
> ---------------------------------------------------------
>
> The line of the property is inserted at the end
> of the Properties drawer, but before :END:.
>
> Not where the prompt was, and where I expected to find it.
>
> ----------------------- A complete test: ----------
> ** second test
> :PROPERTIES:
> :ID: lab
>   .                   I put the "." to highligh the eol
>  .
>  .
> :Feeling: mickey mouse[1]
> :Comment:
> :Element:  He
> :Number:   2
> :Type:     gas
> :END:
> [1] http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1117755/
> ----------------------------
>
> cheers,
> Giovanni
>
> current state:
> ==============
> (setq
> org-log-done 'time
> org-export-latex-after-initial-vars-hook '(org-beamer-after-initial- 
> vars)
> org-speed-command-hook '(org-speed-command-default-hook org-babel- 
> speed-command-hook)
> org-blocker-hook '(org-block-todo-from-children-or-siblings-or-parent)
> org-metaup-hook '(org-babel-load-in-session-maybe)
> org-capture-templates '(("q" "element" entry (file+headline  
> "test.org" "capture")
> 			  "*** %^{prompt} \n :PROPERTIES:\n :ID: lab \n %^{Element}p  \n  
> %^{Number}p \n %^{Type}p \n :Feeling: %? \n :Comment:  \n :END:")
> 			 )
> org-after-todo-state-change-hook '(org-clock-out-if-current)
> org-export-blocks-postblock-hook '(org-exp-res/src-name-cleanup)
> org-export-latex-format-toc-function 'org-export-latex-format-toc- 
> default
> org-capture-before-finalize-hook '(org-clock-in)
> org-tab-first-hook '(org-hide-block-toggle-maybe org-src-native-tab- 
> command-maybe org-babel-hide-result-toggle-maybe)
> org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode- 
> configure-edit-buffer)
> org-finalize-agenda-hook '(my-org-agenda-to-appt)
> org-confirm-shell-link-function 'yes-or-no-p
> org-export-first-hook '(org-beamer-initialize-open-trackers)
> org-agenda-before-write-hook '(org-agenda-add-entry-text)
> org-babel-pre-tangle-hook '(save-buffer)
> org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide- 
> drawers org-cycle-show-empty-lines
> 		  org-optimize-window-after-visibility-change)
> org-export-preprocess-before-normalizing-links-hook '(org-remove- 
> file-link-modifiers)
> org-mode-hook '((lambda nil
> 		  (org-add-hook (quote change-major-mode-hook) (quote org-show- 
> block-all) (quote append) (quote local)))
> 		 (lambda nil
> 		  (org-add-hook (quote change-major-mode-hook) (quote org-babel- 
> show-result-all) (quote append)
> 		   (quote local))
> 		  )
> 		 org-babel-result-hide-spec org-babel-hide-all-hashes)
> org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute- 
> safely-maybe)
> org-confirm-elisp-link-function 'yes-or-no-p
> org-export-interblocks '((lob org-babel-exp-lob-one-liners) (src org- 
> babel-exp-inline-src-blocks))
> org-enforce-todo-dependencies t
> org-occur-hook '(org-first-headline-recenter)
> org-export-preprocess-before-selecting-backend-code-hook '(org- 
> beamer-select-beamer-code)
> org-export-latex-final-hook '(org-beamer-amend-header org-beamer-fix- 
> toc org-beamer-auto-fragile-frames
> 			       org-beamer-place-default-actions-for-lists)
> org-metadown-hook '(org-babel-pop-to-session-maybe)
> org-export-blocks '((src org-babel-exp-src-blocks nil) (comment org- 
> export-blocks-format-comment t)
> 		     (ditaa org-export-blocks-format-ditaa nil) (dot org-export- 
> blocks-format-dot nil))
> )
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten

  parent reply	other threads:[~2011-01-04 12:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-10 12:10 Bug: capture with PROPERTIES [7.3 commit-972b0a58...] Giovanni Ridolfi
2010-12-13 15:34 ` Bug: capture with PROPERTIES [7.4 commit-4760c3b94...] Giovanni Ridolfi
2011-01-04 12:57 ` Carsten Dominik [this message]
  -- strict thread matches above, loose matches on Subject: below --
2010-12-10 13:19 Bug: capture with PROPERTIES [7.3 commit-972b0a58...] Giovanni Ridolfi
2011-01-02 17:15 ` David Maus

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:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

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

  git send-email \
    --in-reply-to=6DE91187-59F0-4AA3-9487-A758CEB6D5DE@gmail.com \
    --to=carsten.dominik@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=giovanni.ridolfi@yahoo.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* 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

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

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).