Re: [O] Templates for cloning
The comment about swapping lines and getting a nicer version was intended for the orgmode devs, just in case they want an easy way to support templates with minimal changes to the source code. My solution also works. Just copy the elisp definitions for org-p and org-g into your .emacs file. Then define a new template and you're set. In the template: - %(org-p varname) will prompt you for a value that is then stored as 'varname'. - %(org-g varname) will then insert the text you entered at the prompt. Sebastian On 08/05/12 08:35pm, Nathan Neff wrote: On Fri, Aug 3, 2012 at 9:40 PM, Sebastian Fischmeister sfisc...@uwaterloo.ca wrote: As an idea, this is how I use templates: %+begin_src (defun org-p (key) (let ((val (read-from-minibuffer (concat Define key : (plist-put org-store-link-plist (intern (concat : key)) val)) ) (defmacro org-g (key) (or (plist-get org-store-link-plist (intern (concat : key))) (concat MISSING-KEY- key))) (setq org-capture-templates (quote ((p4 Template: Bla plain (file+headline ~/.org/todo.org Projects) (file ~/.org/templates/bla.tmpl) %+end_src %+begin_src yasnippet %(org-p var1) %(org-p var2) ** Now copy here %(org-g var1) ** And here %(org-g var1) SCHEDULED: %^t %+end_src If you just swap the sequence of the buffer evaluation in org-capture-fill-template, then you would even have a nicer version of this. See this previous post for details: http://comments.gmane.org/gmane.emacs.orgmode/57248 Sebastian Sebastian, thanks for your suggestion, but I'm having trouble understanding how your solution works, and I don't know what you mean by If you just swap the sequence of the buffer evaluation. I only glanced at your suggestion and will review it later (hopefully). If you can point me to more documentation about what's going on in your solution, or perhaps enlighten me a bit more, I would appreciate it! Thanks, --Nate
Re: [O] Templates for cloning
On Fri, Aug 3, 2012 at 9:40 PM, Sebastian Fischmeister sfisc...@uwaterloo.ca wrote: As an idea, this is how I use templates: %+begin_src (defun org-p (key) (let ((val (read-from-minibuffer (concat Define key : (plist-put org-store-link-plist (intern (concat : key)) val)) ) (defmacro org-g (key) (or (plist-get org-store-link-plist (intern (concat : key))) (concat MISSING-KEY- key))) (setq org-capture-templates (quote ((p4 Template: Bla plain (file+headline ~/.org/todo.org Projects) (file ~/.org/templates/bla.tmpl) %+end_src %+begin_src yasnippet %(org-p var1) %(org-p var2) ** Now copy here %(org-g var1) ** And here %(org-g var1) SCHEDULED: %^t %+end_src If you just swap the sequence of the buffer evaluation in org-capture-fill-template, then you would even have a nicer version of this. See this previous post for details: http://comments.gmane.org/gmane.emacs.orgmode/57248 Sebastian Sebastian, thanks for your suggestion, but I'm having trouble understanding how your solution works, and I don't know what you mean by If you just swap the sequence of the buffer evaluation. I only glanced at your suggestion and will review it later (hopefully). If you can point me to more documentation about what's going on in your solution, or perhaps enlighten me a bit more, I would appreciate it! Thanks, --Nate
Re: [O] Templates for cloning
Hi Nathan, Nathan Neff nathan.n...@gmail.com writes: Is there a way to create a template structure for cloning? This is something I've wanted for long, and I hope I'll find the time to implement it after 7.9. More precisely, I want something that captures the structure of the subtree at point (with all elements), then let's you convert this structure into a template for later interactive insertion. Does anyone know of a way to do this? I guess yasnippet can help to produce something close to what you want for now. Best, -- Bastien
Re: [O] Templates for cloning
As an idea, this is how I use templates: %+begin_src (defun org-p (key) (let ((val (read-from-minibuffer (concat Define key : (plist-put org-store-link-plist (intern (concat : key)) val)) ) (defmacro org-g (key) (or (plist-get org-store-link-plist (intern (concat : key))) (concat MISSING-KEY- key))) (setq org-capture-templates (quote ((p4 Template: Bla plain (file+headline ~/.org/todo.org Projects) (file ~/.org/templates/bla.tmpl) %+end_src %+begin_src yasnippet %(org-p var1) %(org-p var2) ** Now copy here %(org-g var1) ** And here %(org-g var1) SCHEDULED: %^t %+end_src If you just swap the sequence of the buffer evaluation in org-capture-fill-template, then you would even have a nicer version of this. See this previous post for details: http://comments.gmane.org/gmane.emacs.orgmode/57248 Sebastian On 08/03/12 09:25am, Bastien wrote: Hi Nathan, Nathan Neff nathan.n...@gmail.com writes: Is there a way to create a template structure for cloning? This is something I've wanted for long, and I hope I'll find the time to implement it after 7.9. More precisely, I want something that captures the structure of the subtree at point (with all elements), then let's you convert this structure into a template for later interactive insertion. Does anyone know of a way to do this? I guess yasnippet can help to produce something close to what you want for now. Best,
[O] Templates for cloning
Hi all, Is there a way to create a template structure for cloning? The main purpose would be to create a shell or structure that is easy to replicate, such as a workflow, etc. This shell, etc would not need any hard-coded dates, but could simply have offsets for sub-items whose due-dates or start dates are relative to a single start date. For example, I'd like to have this: * Some Project ** Plan Project start-date-placeholder ** Step 1 start-date-placeholder +1d ** Step 2 start-date-placeholder +1w ** Project Due DEADLINE:start-date-placeholder +1m This would be cool, because 1) You wouldn't see this template in the agenda, because the dates aren't hard-coded 2) You could be prompted for the start date when you clone this template, and all the dates would then be created from that start date 3) When cloning this template, you wouldn't have to calculate the delta between the template's date and the initial start date that you plan for the clone of this template Does anyone know of a way to do this? - I could keep this template in another directory or re-name it as .TXT so that the agenda wouldn't pick up the template's fake start dates, but this seems hacky. Thanks --Nate