From: Mikhail Skorzhinskii <mskorzhinskiy@eml.cc>
To: John Sturdy <jcg.sturdy@gmail.com>, emacs-orgmode@gnu.org
Subject: Re: Exporting agendas as org-mode files?
Date: Wed, 13 Nov 2019 12:07:33 +0100 [thread overview]
Message-ID: <87a790uj9m.fsf@eml.cc> (raw)
In-Reply-To: <8736esv69z.fsf@alphapapa.net>
Adam Porter <adam@alphapapa.net> 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 <jcg.sturdy@gmail.com> 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.
next prev parent reply other threads:[~2019-11-13 11:07 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-12 15:46 Exporting agendas as org-mode files? John Sturdy
2019-11-13 2:50 ` Adam Porter
2019-11-13 11:07 ` Mikhail Skorzhinskii [this message]
2019-11-14 12:03 ` Adam Porter
2019-11-18 12:11 ` John Sturdy
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=87a790uj9m.fsf@eml.cc \
--to=mskorzhinskiy@eml.cc \
--cc=emacs-orgmode@gnu.org \
--cc=jcg.sturdy@gmail.com \
/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).