emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: No Wayman <iarchivedmywholelife@gmail.com>
To: pietru@caramail.com
Cc: theophilusx@gmail.com, emacs-orgmode@gnu.org
Subject: Re: Org Capture Menu cannot be fully viewed
Date: Wed, 16 Dec 2020 11:58:38 -0500	[thread overview]
Message-ID: <878s9xsn5t.fsf@gmail.com> (raw)
In-Reply-To: <trinity-66876af5-d8b2-42fd-950b-9e5f95c1bda3-1607825300196@3c-app-mailcom-bs06>


Pietru:

If you are extensively using Org's capture templates I suggest 
taking a look at:

https://github.com/progfolio/doct

A brief summary of some of the benefits it provides:

- Allows capture template inheritance
- Checks for certain errors in template declarations *before* 
  capture.
- Automatically computes the keys for nested menus
- Makes per-template hooks/contexts easy to declare.
- Allows for storing custom metadata with templates which can be 
  used within templates
- Declarative: Your template declarations will be easier to 
  read/share.

Taking the list of templates provided earlier as an example,
It could utilize nested menus/inheritance like so:

#+begin_src emacs-lisp :lexical t
(doct
 '( :group "Archaeology"
    :file "~/histr/archaeol.org"
    :template "* Site_Type: %?\n %T\n"
    :children (("Research" :keys "r"
                :children (("Bioarchaeological"     :keys "b")
                           ("Collections"           :keys "c")
                           ("Design/Data Recovery"  :keys "d")
                           ("Environment"           :keys "e")
                           ("Ethnographic"          :keys "g")
                           ("Ethnohistoric"         :keys "h")
                           ("Historic Eval/Testing" :keys "t")))
               ("Survey" :keys "s"
                :children (("Architectural"       :keys "a")
                           ("Geophysical"         :keys "g")
                           ("Reconnaissance"      :keys "r")
                           ("Recovery/Excavation" :keys "R")))
               ("Consultation"                      :keys "c")
               ("Architectural Documentation"       :keys "d")
               ("Site Stabilization"                :keys "e")
               ("Ground Disturbance Monitoring"     :keys "g")
               ("Heritage Management"               :keys "h")
               ("Records Search/Inventory Checking" :keys "i")
               ("Methodology, Theory, Synthesis"    :keys "m")
               ("Archaeological Overview"           :keys "o")
               ("Remote Sensing"                    :keys "R")
               ("Site Stewardship Monitoring"       :keys "d"))))
#+end_src

Each template inherits the :file and :template values.
The keys for the "Research" and "Survey" children templates are 
computed by doct,
so changing the whole groups prefix key only requires a change on 
the parent template's :keys.

I haven't demoed the custom metadata in this example as I don't 
know your exact use case,
but there is an example in the documentation:

https://github.com/progfolio/doct#custom-data


Hope this is useful for you.

~ Nick


  parent reply	other threads:[~2020-12-16 17:03 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-12 18:02 pietru
2020-12-12 22:09 ` TRS-80
2020-12-12 22:46   ` pietru
2020-12-12 23:13     ` TRS-80
2020-12-12 23:30       ` pietru
2020-12-13  0:00         ` TRS-80
2020-12-13  0:10           ` pietru
2020-12-13 11:06   ` Jean Louis
2020-12-13 18:28     ` pietru
2020-12-13 20:37       ` Jean Louis
2020-12-13 20:52         ` TRS-80
2020-12-13 21:02         ` pietru
2020-12-13 21:48           ` Jean Louis
2020-12-13 22:08             ` pietru
2020-12-13 22:20             ` pietru
2020-12-13 22:00           ` TRS-80
2020-12-13 22:36             ` pietru
2020-12-13 20:32     ` TEC
2020-12-13 21:43       ` Jean Louis
2020-12-13  0:46 ` Tim Cross
2020-12-13  1:32   ` pietru
2020-12-13  2:08     ` pietru
2020-12-13  3:16       ` TRS-80
2020-12-13  3:49         ` pietru
2020-12-13  4:30           ` TRS-80
2020-12-13  9:58             ` pietru
2020-12-13 16:52             ` Jean Louis
2020-12-13 10:24           ` Jean Louis
2020-12-13 18:41             ` pietru
2020-12-13 20:48               ` TRS-80
2020-12-13  4:57         ` pietru
2020-12-13  9:24           ` Christopher Dimech
2020-12-13 23:08           ` TRS-80
2020-12-14  0:04             ` pietru
2020-12-13  9:44       ` Jean Louis
2020-12-13 18:46         ` Christopher Dimech
2020-12-16 18:46         ` No Wayman
2020-12-16 16:58       ` No Wayman [this message]
2020-12-13 15:12   ` Jean Louis
2020-12-13 18:08     ` pietru
2020-12-13 20:06     ` Tim Cross
2020-12-13 21:37       ` pietru
2020-12-13 21:57       ` Bastien
2020-12-13 22:31         ` pietru
2020-12-13 23:30         ` Jean Louis
2020-12-13 23:52           ` Bastien
2020-12-13 22:34       ` Jean Louis
2020-12-14 12:41 ` Marco Wahl
2020-12-14 13:00   ` pietru
2020-12-14 13:18     ` Marco Wahl
2020-12-14 20:02   ` Org Capture Menu cannot be fully viewed - Results of testing C-n, C-p, C-v pietru
2020-12-16 21:46     ` Marco Wahl
2020-12-16 23:25       ` pietru

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=878s9xsn5t.fsf@gmail.com \
    --to=iarchivedmywholelife@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=pietru@caramail.com \
    --cc=theophilusx@gmail.com \
    --subject='Re: Org Capture Menu cannot be fully viewed' \
    /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

Code repositories for project(s) associated with this 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).