emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Austin Frank <austin.frank@gmail.com>
To: emacs-orgmode@gnu.org
Subject: FR:  move subtree to category's file
Date: Wed, 17 Oct 2007 18:18:59 -0400	[thread overview]
Message-ID: <m04pgpxu3w.fsf@gmail.com> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 3293 bytes --]

Hello!

I'd like to propose some functionality that I think would be useful, and
offer a very naive proof-of-concept implementation.

The basic idea is that I'd like to be able to add or change a property
on a tree, and then move the whole tree to a location based on that
property.

To be more concrete, I take lots of notes with remember.  They all get
saved to ~/notes.org.  Later in the day, I go back and add a PROJECT or
CATEGORY property to many of these notes.  Especially for a tree that
has to do with a project, I'd like to be able to quickly file the note
away in a file dedicated to that project by moving the tree to a
predefined file.

I know that there's a lot of power in the one-file-to-rule-them-all
approach, and that there are lots of ways I could view just the parts of
the file that have to do with a given project.  So if this idea is a
non-starter, that's fine, too.  Still there are some contexts where
having multiple files can be a good thing (for example, when using the
org-publish-project-alist).

I've got a very simple implementation of the idea that goes like this:

    ;; My filing system
    (setplist 'project '(research1 "~/research1.org"
                         grant1 "~/grant1.org"))
    
    (defun aff-org-move-to-project-file ()
      "Use value of the PROJECT property to move the subtree at the
      point to a predefined file."
      (interactive)
      (let* ((pom (point))
             (file (get 'project (intern (org-entry-get pom "PROJECT")))))
        (org-cut-subtree)
        (org-open-file file)
        (end-of-buffer)
        (org-paste-subtree)))

This is does the basic job, but it'd be neat to see it extended in a
couple of ways:

 - Have a single variable that defines mappings for multiple
   properties.  Something like

       ;; probably lousy syntax for this, but
       ;; ("PROP_NAME" ("prop_value" "associated_info"))
       (setq org-property-map '(("PROJECTS" ("research" "research.org"
                                             "grants" "grants.org"))
                                ("CATEGORY" (chores "home.org"))))

 - Be able to use the syntax for linking to other org files to specify a
   location in the other file to insert the tree

 - With a prefix, be prompted for location to insert the tree in the
   file, like with remember notes

 - When more than one property of a given tree has a destination
   defined, prompt for which location to use  

 - It would also be nice to use these values to build appropriate
   archive locations, so that (for example) any DONE item with a value
   of "research" for the "PROJECT" category would be archived at the
   bottom of the research.org file rather than the default
   org-archive-location.

This whole proposal is basically just a generalization of
org-archive-subtree and org-archive-location to allow movement and
archiving based on properties other than just ARCHIVE.  Hopefully this
means most of the required functionality is already in place.

I know that for my workflow this would be very useful.  Would other
folks also like to have this functionality?

Thanks,
/au

-- 
Austin Frank
http://aufrank.net
GPG Public Key (D7398C2F): http://aufrank.net/personal.asc

[-- Attachment #1.2: Type: application/pgp-signature, Size: 185 bytes --]

[-- Attachment #2: Type: text/plain, Size: 204 bytes --]

_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

             reply	other threads:[~2007-10-17 22:19 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-17 22:18 Austin Frank [this message]
2007-10-28 20:25 ` FR: move subtree to category's file Carsten Dominik

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=m04pgpxu3w.fsf@gmail.com \
    --to=austin.frank@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /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).