emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Exporting agendas as org-mode files?


From: Mikhail Skorzhinskii
Subject: Re: Exporting agendas as org-mode files?
Date: Wed, 13 Nov 2019 12:07:33 +0100
User-agent: mu4e 1.3.5; emacs 26.3

Adam Porter <address@hidden> writes:

 > org-ql would make this pretty easy, I think.  Use an org-ql query to
 > select entries, and for the :action function, use a simple function that
 > copies the entry or subtree and yanks it into a buffer.  Then save that
 > buffer to a file.

Yes, it is.

Although just picking some entries from huge org-mode base and write
them into separate file is a base feature of org-mode itself. org-ql
package just making the process of finding entries of interest much
easier and faster.

John Sturdy <address@hidden> writes:

  > I'd like to be able to export agendas as org-mode files

If you're looking into the pure org-mode approach, then what you're
looking for ~org-agenda-write~ function or custom agenda view written
with exporting in mind. In order to export to org all you need to do is
to specify .org extension.

  https://orgmode.org/manual/Exporting-agenda-views.html

I was using this small snippet to export some of my agenda seacrhes:

#+begin_src emacs-lisp
  (org-agenda nil "a")
  (org-agenda-write "~/example.org" nil t "*Org Agenda*")
#+end_src

Be aware that this will regenerate your *Org Agenda* buffer, so either
use sticky agendas or export agendas in separate emacs process.


But I would highly recommend using org-ql for these purpouses. Besides
pretty solid and easy-to-use interface it is noticably faster.

Here is the snippet I am currently using to export all subtress directly
tagged with :info: to the separate file. (Sorry for the lack of proper
parametrisation).

#+begin_src emacs-lisp
(defun org-user/store-info ()
  (let ((file "~/org/cals/info.org")
        (heading (org-format-outline-path (org-get-outline-path t))))
    (save-excursion
      (org-copy-subtree)
      (find-file file)
      (end-of-buffer)
      (org-paste-subtree)
      (org-edit-headline heading))))

(defun org-user/export-info ()
  "Export all information entries into one file."
  (find-file "~/org/cals/info.org")
  (erase-buffer)
  (insert "#+TITLE: Information")
  (org-ql-select
    (org-agenda-files)
    '(tags-local "info")
    :action #'org-user/store-info)
  (save-buffer))
#+end_src

You need to invoke (org-user/export-info), obviosuly.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]