[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/denote 9afdf86cf1 1/3: Change how 'denote-file-types' :
From: |
ELPA Syncer |
Subject: |
[elpa] externals/denote 9afdf86cf1 1/3: Change how 'denote-file-types' :front-matter is defined |
Date: |
Tue, 4 Oct 2022 07:57:34 -0400 (EDT) |
branch: externals/denote
commit 9afdf86cf148da229613f54ecae8674ff89c8689
Author: Noburu Ota (nobiot) <me@nobiot.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>
Change how 'denote-file-types' :front-matter is defined
This will allow changing front-matter variables by 'setq' after
'denote' is loaded/compiled without needing to set 'define-file-types'
again.
Currently, changing variables 'denote-*-front-matter' to personalize
the front matter with using 'setq' requires the user to set variable
'denote-file-types' again to reflect the change.
This is because 'denote-file-types' is defined with macro expansion
with using the backquote ("`") and "," to evaluate variables
'denote-*-front-matter' inside the macro. This results in the front
matters fixed by the values of front-matter variables at the time of
loading or compiling 'denote', and setting the front-matter variables
thereafter with 'setq' will not affect the front matter in notes
created -- this will require setting 'denote-file-types' again.
For the relevant discussion, read:
<https://lists.sr.ht/~protesilaos/denote/%3C86k05gsqsg.fsf%40nobiot.com%3E>.
---
denote.el | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/denote.el b/denote.el
index a8734d1be2..33c5bd67ef 100644
--- a/denote.el
+++ b/denote.el
@@ -828,7 +828,7 @@ Consult the `denote-file-types' for how this is used."
;; to be org by default.
`((org
:extension ".org"
- :front-matter ,denote-org-front-matter
+ :front-matter denote-org-front-matter
:title-key-regexp "^#\\+title\\s-*:"
:title-value-function identity
:title-value-reverse-function denote-trim-whitespace
@@ -837,7 +837,7 @@ Consult the `denote-file-types' for how this is used."
:keywords-value-reverse-function
denote-extract-keywords-from-front-matter)
(markdown-yaml
:extension ".md"
- :front-matter ,denote-yaml-front-matter
+ :front-matter denote-yaml-front-matter
:title-key-regexp "^title\\s-*:"
:title-value-function denote-surround-with-quotes
:title-value-reverse-function denote-trim-whitespace-then-quotes
@@ -846,7 +846,7 @@ Consult the `denote-file-types' for how this is used."
:keywords-value-reverse-function
denote-extract-keywords-from-front-matter)
(markdown-toml
:extension ".md"
- :front-matter ,denote-toml-front-matter
+ :front-matter denote-toml-front-matter
:title-key-regexp "^title\\s-*="
:title-value-function denote-surround-with-quotes
:title-value-reverse-function denote-trim-whitespace-then-quotes
@@ -855,7 +855,7 @@ Consult the `denote-file-types' for how this is used."
:keywords-value-reverse-function
denote-extract-keywords-from-front-matter)
(text
:extension ".txt"
- :front-matter ,denote-text-front-matter
+ :front-matter denote-text-front-matter
:title-key-regexp "^title\\s-*:"
:title-value-function identity
:title-value-reverse-function denote-trim-whitespace
@@ -911,9 +911,12 @@ PROPERTY-LIST is a plist that consists of 8 elements:
(defun denote--front-matter (file-type)
"Return front matter based on FILE-TYPE."
- (plist-get
- (alist-get file-type denote-file-types)
- :front-matter))
+ (let ((prop (plist-get
+ (alist-get file-type denote-file-types)
+ :front-matter)))
+ (if (symbolp prop)
+ (symbol-value prop)
+ prop)))
(defun denote--title-key-regexp (file-type)
"Return the title key regexp associated to FILE-TYPE."
@@ -2661,7 +2664,7 @@ interface by first selecting the `denote:' hyperlink
type."
(declare-function org-link-store-props "ol.el" (&rest plist))
(defvar org-store-link-plist)
-(defun denote-link-ol-store()
+(defun denote-link-ol-store ()
"Handler for `org-store-link' adding support for denote: links."
(when-let* ((file (buffer-file-name))
((denote-file-is-note-p file))