emacs-elpa-diffs
[Top][All Lists]
Advanced

[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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]