Thanks, I'll try switching to org-ql for my main queries, and then build on that. __John On Wed, Nov 13, 2019 at 11:07 AM Mikhail Skorzhinskii wrote: > Adam Porter 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 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. >