This commit is contained in:
Jethro Kuan
2021-04-14 01:17:50 +08:00
parent 1773978dc3
commit bbefa7c174
2 changed files with 174 additions and 177 deletions

View File

@@ -71,15 +71,15 @@ keys The keys that will select the template, as a string, characters onl
(\"b\" \"Templates for marking stuff to buy\") (\"b\" \"Templates for marking stuff to buy\")
The \"C\" key is used by default for quick access to the customization of the template The \"C\" key is used by default for quick access to the customization of
variable. But if you want to use that key for a template, you can. the template variable. But if you want to use that key for a template, you can.
description A short string describing the template, which will be shown during selection. description A short string describing the template, which will be shown during selection.
type The type of entry. Valid types are: type The type of entry. Valid types are:
entry an Org node, with a headline. Will be filed entry an Org node, with a headline. Will be filed
as the child of the target entry or as a as the child of the target entry or as a
top-level entry. Its default template is: top level entry. Its default template is:
\"* %?\n %a\" \"* %?\n %a\"
item a plain list item, will be placed in the item a plain list item, will be placed in the
first plain list at the target location. first plain list at the target location.
@@ -270,64 +270,63 @@ Org-roam templates are NOT compatible with regular Org capture:
they rely on additional hacks and hooks to achieve the they rely on additional hacks and hooks to achieve the
streamlined user experience in Org-roam. " streamlined user experience in Org-roam. "
:group 'org-roam :group 'org-roam
:type :type '(repeat
'(repeat (choice (list :tag "Multikey description"
(choice (list :tag "Multikey description" (string :tag "Keys ")
(string :tag "Keys ") (string :tag "Description"))
(string :tag "Description")) (list :tag "Template entry"
(list :tag "Template entry" (string :tag "Keys ")
(string :tag "Keys ") (string :tag "Description ")
(string :tag "Description ") (choice :tag "Capture Type " :value entry
(choice :tag "Capture Type " :value entry (const :tag "Org entry" entry)
(const :tag "Org entry" entry) (const :tag "Plain list item" item)
(const :tag "Plain list item" item) (const :tag "Checkbox item" checkitem)
(const :tag "Checkbox item" checkitem) (const :tag "Plain text" plain)
(const :tag "Plain text" plain) (const :tag "Table line" table-line))
(const :tag "Table line" table-line)) (choice :tag "Template "
(choice :tag "Template " (string)
(string) (list :tag "File"
(list :tag "File" (const :format "" file)
(const :format "" file) (file :tag "Template file"))
(file :tag "Template file")) (list :tag "Function"
(list :tag "Function" (const :format "" function)
(const :format "" function) (function :tag "Template function")))
(function :tag "Template function"))) (plist :inline t
(plist :inline t ;; Give the most common options as checkboxes
;; Give the most common options as checkboxes :options (((const :format "%v " :if-new)
:options (((const :format "%v " :if-new) (choice :tag "Node location"
(choice :tag "Node location" (list :tag "File"
(list :tag "File" (const :format "" file)
(const :format "" file) (string :tag " File"))
(string :tag " File")) (list :tag "File & Head Content"
(list :tag "File & Head Content" (const :format "" file+head)
(const :format "" file+head) (string :tag " File")
(string :tag " File") (string :tag " Head Content"))
(string :tag " Head Content")) (list :tag "File & Outline path"
(list :tag "File & Outline path" (const :format "" file+olp)
(const :format "" file+olp) (string :tag " File")
(string :tag " File") (list :tag "Outline path"
(list :tag "Outline path" (repeat string :tag "Headline")))
(repeat string :tag "Headline"))) (list :tag "File & Head Content & Outline path"
(list :tag "File & Head Content & Outline path" (const :format "" file+head+olp)
(const :format "" file+head+olp) (string :tag " File")
(string :tag " File") (string :tag " Head Content")
(string :tag " Head Content") (list :tag "Outline path"
(list :tag "Outline path" (repeat string :tag "Headline")))))
(repeat string :tag "Headline"))))) ((const :format "%v " :prepend) (const t))
((const :format "%v " :prepend) (const t)) ((const :format "%v " :immediate-finish) (const t))
((const :format "%v " :immediate-finish) (const t)) ((const :format "%v " :jump-to-captured) (const t))
((const :format "%v " :jump-to-captured) (const t)) ((const :format "%v " :empty-lines) (const 1))
((const :format "%v " :empty-lines) (const 1)) ((const :format "%v " :empty-lines-before) (const 1))
((const :format "%v " :empty-lines-before) (const 1)) ((const :format "%v " :empty-lines-after) (const 1))
((const :format "%v " :empty-lines-after) (const 1)) ((const :format "%v " :clock-in) (const t))
((const :format "%v " :clock-in) (const t)) ((const :format "%v " :clock-keep) (const t))
((const :format "%v " :clock-keep) (const t)) ((const :format "%v " :clock-resume) (const t))
((const :format "%v " :clock-resume) (const t)) ((const :format "%v " :time-prompt) (const t))
((const :format "%v " :time-prompt) (const t)) ((const :format "%v " :tree-type) (const week))
((const :format "%v " :tree-type) (const week)) ((const :format "%v " :unnarrowed) (const t))
((const :format "%v " :unnarrowed) (const t)) ((const :format "%v " :table-line-pos) (string))
((const :format "%v " :table-line-pos) (string)) ((const :format "%v " :kill-buffer) (const t))))))))
((const :format "%v " :kill-buffer) (const t))))))))
(defcustom org-roam-capture-ref-templates (defcustom org-roam-capture-ref-templates
'(("r" "ref" plain "%?" '(("r" "ref" plain "%?"
@@ -337,64 +336,63 @@ streamlined user experience in Org-roam. "
"The Org-roam templates used during a capture from the roam-ref protocol. "The Org-roam templates used during a capture from the roam-ref protocol.
See `org-roam-capture-templates' for the template documentation." See `org-roam-capture-templates' for the template documentation."
:group 'org-roam :group 'org-roam
:type :type '(repeat
'(repeat (choice (list :tag "Multikey description"
(choice (list :tag "Multikey description" (string :tag "Keys ")
(string :tag "Keys ") (string :tag "Description"))
(string :tag "Description")) (list :tag "Template entry"
(list :tag "Template entry" (string :tag "Keys ")
(string :tag "Keys ") (string :tag "Description ")
(string :tag "Description ") (choice :tag "Capture Type " :value entry
(choice :tag "Capture Type " :value entry (const :tag "Org entry" entry)
(const :tag "Org entry" entry) (const :tag "Plain list item" item)
(const :tag "Plain list item" item) (const :tag "Checkbox item" checkitem)
(const :tag "Checkbox item" checkitem) (const :tag "Plain text" plain)
(const :tag "Plain text" plain) (const :tag "Table line" table-line))
(const :tag "Table line" table-line)) (choice :tag "Template "
(choice :tag "Template " (string)
(string) (list :tag "File"
(list :tag "File" (const :format "" file)
(const :format "" file) (file :tag "Template file"))
(file :tag "Template file")) (list :tag "Function"
(list :tag "Function" (const :format "" function)
(const :format "" function) (function :tag "Template function")))
(function :tag "Template function"))) (plist :inline t
(plist :inline t ;; Give the most common options as checkboxes
;; Give the most common options as checkboxes :options (((const :format "%v " :if-new)
:options (((const :format "%v " :if-new) (choice :tag "Node location"
(choice :tag "Node location" (list :tag "File"
(list :tag "File" (const :format "" file)
(const :format "" file) (string :tag " File"))
(string :tag " File")) (list :tag "File & Head Content"
(list :tag "File & Head Content" (const :format "" file+head)
(const :format "" file+head) (string :tag " File")
(string :tag " File") (string :tag " Head Content"))
(string :tag " Head Content")) (list :tag "File & Outline path"
(list :tag "File & Outline path" (const :format "" file+olp)
(const :format "" file+olp) (string :tag " File")
(string :tag " File") (list :tag "Outline path"
(list :tag "Outline path" (repeat string :tag "Headline")))
(repeat string :tag "Headline"))) (list :tag "File & Head Content & Outline path"
(list :tag "File & Head Content & Outline path" (const :format "" file+head+olp)
(const :format "" file+head+olp) (string :tag " File")
(string :tag " File") (string :tag " Head Content")
(string :tag " Head Content") (list :tag "Outline path"
(list :tag "Outline path" (repeat string :tag "Headline")))))
(repeat string :tag "Headline"))))) ((const :format "%v " :prepend) (const t))
((const :format "%v " :prepend) (const t)) ((const :format "%v " :immediate-finish) (const t))
((const :format "%v " :immediate-finish) (const t)) ((const :format "%v " :jump-to-captured) (const t))
((const :format "%v " :jump-to-captured) (const t)) ((const :format "%v " :empty-lines) (const 1))
((const :format "%v " :empty-lines) (const 1)) ((const :format "%v " :empty-lines-before) (const 1))
((const :format "%v " :empty-lines-before) (const 1)) ((const :format "%v " :empty-lines-after) (const 1))
((const :format "%v " :empty-lines-after) (const 1)) ((const :format "%v " :clock-in) (const t))
((const :format "%v " :clock-in) (const t)) ((const :format "%v " :clock-keep) (const t))
((const :format "%v " :clock-keep) (const t)) ((const :format "%v " :clock-resume) (const t))
((const :format "%v " :clock-resume) (const t)) ((const :format "%v " :time-prompt) (const t))
((const :format "%v " :time-prompt) (const t)) ((const :format "%v " :tree-type) (const week))
((const :format "%v " :tree-type) (const week)) ((const :format "%v " :unnarrowed) (const t))
((const :format "%v " :unnarrowed) (const t)) ((const :format "%v " :table-line-pos) (string))
((const :format "%v " :table-line-pos) (string)) ((const :format "%v " :kill-buffer) (const t))))))))
((const :format "%v " :kill-buffer) (const t))))))))
(defun org-roam-capture-p () (defun org-roam-capture-p ()
"Return t if the current capture process is an Org-roam capture. "Return t if the current capture process is an Org-roam capture.

View File

@@ -68,64 +68,63 @@
"Capture templates for daily-notes in Org-roam. "Capture templates for daily-notes in Org-roam.
See `org-roam-capture-templates' for the template documentation." See `org-roam-capture-templates' for the template documentation."
:group 'org-roam :group 'org-roam
:type :type '(repeat
'(repeat (choice (list :tag "Multikey description"
(choice (list :tag "Multikey description" (string :tag "Keys ")
(string :tag "Keys ") (string :tag "Description"))
(string :tag "Description")) (list :tag "Template entry"
(list :tag "Template entry" (string :tag "Keys ")
(string :tag "Keys ") (string :tag "Description ")
(string :tag "Description ") (choice :tag "Capture Type " :value entry
(choice :tag "Capture Type " :value entry (const :tag "Org entry" entry)
(const :tag "Org entry" entry) (const :tag "Plain list item" item)
(const :tag "Plain list item" item) (const :tag "Checkbox item" checkitem)
(const :tag "Checkbox item" checkitem) (const :tag "Plain text" plain)
(const :tag "Plain text" plain) (const :tag "Table line" table-line))
(const :tag "Table line" table-line)) (choice :tag "Template "
(choice :tag "Template " (string)
(string) (list :tag "File"
(list :tag "File" (const :format "" file)
(const :format "" file) (file :tag "Template file"))
(file :tag "Template file")) (list :tag "Function"
(list :tag "Function" (const :format "" function)
(const :format "" function) (function :tag "Template function")))
(function :tag "Template function"))) (plist :inline t
(plist :inline t ;; Give the most common options as checkboxes
;; Give the most common options as checkboxes :options (((const :format "%v " :if-new)
:options (((const :format "%v " :if-new) (choice :tag "Node location"
(choice :tag "Node location" (list :tag "File"
(list :tag "File" (const :format "" file)
(const :format "" file) (string :tag " File"))
(string :tag " File")) (list :tag "File & Head Content"
(list :tag "File & Head Content" (const :format "" file+head)
(const :format "" file+head) (string :tag " File")
(string :tag " File") (string :tag " Head Content"))
(string :tag " Head Content")) (list :tag "File & Outline path"
(list :tag "File & Outline path" (const :format "" file+olp)
(const :format "" file+olp) (string :tag " File")
(string :tag " File") (list :tag "Outline path"
(list :tag "Outline path" (repeat string :tag "Headline")))
(repeat string :tag "Headline"))) (list :tag "File & Head Content & Outline path"
(list :tag "File & Head Content & Outline path" (const :format "" file+head+olp)
(const :format "" file+head+olp) (string :tag " File")
(string :tag " File") (string :tag " Head Content")
(string :tag " Head Content") (list :tag "Outline path"
(list :tag "Outline path" (repeat string :tag "Headline")))))
(repeat string :tag "Headline"))))) ((const :format "%v " :prepend) (const t))
((const :format "%v " :prepend) (const t)) ((const :format "%v " :immediate-finish) (const t))
((const :format "%v " :immediate-finish) (const t)) ((const :format "%v " :jump-to-captured) (const t))
((const :format "%v " :jump-to-captured) (const t)) ((const :format "%v " :empty-lines) (const 1))
((const :format "%v " :empty-lines) (const 1)) ((const :format "%v " :empty-lines-before) (const 1))
((const :format "%v " :empty-lines-before) (const 1)) ((const :format "%v " :empty-lines-after) (const 1))
((const :format "%v " :empty-lines-after) (const 1)) ((const :format "%v " :clock-in) (const t))
((const :format "%v " :clock-in) (const t)) ((const :format "%v " :clock-keep) (const t))
((const :format "%v " :clock-keep) (const t)) ((const :format "%v " :clock-resume) (const t))
((const :format "%v " :clock-resume) (const t)) ((const :format "%v " :time-prompt) (const t))
((const :format "%v " :time-prompt) (const t)) ((const :format "%v " :tree-type) (const week))
((const :format "%v " :tree-type) (const week)) ((const :format "%v " :unnarrowed) (const t))
((const :format "%v " :unnarrowed) (const t)) ((const :format "%v " :table-line-pos) (string))
((const :format "%v " :table-line-pos) (string)) ((const :format "%v " :kill-buffer) (const t))))))))
((const :format "%v " :kill-buffer) (const t))))))))
;;;; Utilities ;;;; Utilities
(defun org-roam-dailies-directory--get-absolute-path () (defun org-roam-dailies-directory--get-absolute-path ()