Make 'denote-keywords-combine' a public function

This commit is contained in:
Protesilaos Stavrou 2023-10-16 08:28:57 +03:00
parent b17980a1af
commit df2c7eeb08
No known key found for this signature in database
GPG key ID: 99BD6459CD5CA3EA
2 changed files with 17 additions and 4 deletions

View file

@ -3643,6 +3643,12 @@ might change them without further notice.
~denote-sort-keywords~ is non-nil. =KEYWORDS= is a list of strings,
per ~denote-keywords-prompt~.
#+findex: denote-keywords-combine
+ Function ~denote-keywords-combine~ :: Combine =KEYWORDS= list of
strings into a single string. Keywords are separated by the
underscore character, per the Denote file-naming scheme. [ Made
public as part of {{{development-version}}}. ]
#+findex: denote-directory
+ Function ~denote-directory~ :: Return path of the variable
~denote-directory~ as a proper directory, also because it accepts a

View file

@ -981,8 +981,15 @@ KEYWORDS is a list of strings, per `denote-keywords-prompt'."
(sort keywords #'string-collate-lessp)
keywords))
(defun denote--keywords-combine (keywords)
"Format KEYWORDS output of `denote-keywords-prompt'."
(define-obsolete-function-alias
'denote--keywords-combine
'denote-keywords-combine
"2.1.0")
(defun denote-keywords-combine (keywords)
"Combine KEYWORDS list of strings into a single string.
Keywords are separated by the underscore character, per the
Denote file-naming scheme."
(mapconcat
(lambda (k)
(denote-letter-case 'keywords k))
@ -1427,7 +1434,7 @@ The return value is a string, with the underscrore as a separator
between individual keywords. To get a list of strings instead,
use `denote-retrieve-keywords-value' (the current function uses
that internally)."
(denote--keywords-combine (denote-retrieve-keywords-value file file-type)))
(denote-keywords-combine (denote-retrieve-keywords-value file file-type)))
(defun denote-retrieve-keywords-line (file file-type)
"Return keywords line from FILE front matter per FILE-TYPE."
@ -1471,7 +1478,7 @@ See `denote--retrieve-locations-in-xrefs'."
"Format file name.
PATH, ID, KEYWORDS, TITLE-SLUG, EXTENSION and optional SIGNATURE
are expected to be supplied by `denote' or equivalent command."
(let ((kws (denote--keywords-combine keywords))
(let ((kws (denote-keywords-combine keywords))
(file-name (concat path id)))
(when (and signature (not (string-empty-p signature)))
(setq file-name (concat file-name "==" signature)))