From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Bug: capture with PROPERTIES [7.3 commit-972b0a58...] Date: Tue, 4 Jan 2011 13:57:24 +0100 Message-ID: <6DE91187-59F0-4AA3-9487-A758CEB6D5DE@gmail.com> References: <83zksdhlqg.fsf@yahoo.it> Mime-Version: 1.0 (Apple Message framework v936) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from [140.186.70.92] (port=35281 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pa6SA-0003UM-Ia for emacs-orgmode@gnu.org; Tue, 04 Jan 2011 07:57:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pa6S8-00032F-Lr for emacs-orgmode@gnu.org; Tue, 04 Jan 2011 07:57:30 -0500 Received: from mail-bw0-f41.google.com ([209.85.214.41]:39338) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Pa6S8-000320-Aa for emacs-orgmode@gnu.org; Tue, 04 Jan 2011 07:57:28 -0500 Received: by bwz16 with SMTP id 16so17151433bwz.0 for ; Tue, 04 Jan 2011 04:57:27 -0800 (PST) In-Reply-To: <83zksdhlqg.fsf@yahoo.it> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Giovanni Ridolfi Cc: emacs-orgmode@gnu.org 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", > 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 > > 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