branch: externals/denote commit 05a5334c493e946535358d068bd2a4ce10139653 Author: Protesilaos Stavrou <i...@protesilaos.com> Commit: Protesilaos Stavrou <i...@protesilaos.com>
Update Denote to version 3.0.0 --- CHANGELOG.org | 432 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.org | 64 ++------- denote.el | 2 +- 3 files changed, 446 insertions(+), 52 deletions(-) diff --git a/CHANGELOG.org b/CHANGELOG.org index 619d154245..59481009cb 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -13,6 +13,438 @@ the manual: <https://protesilaos.com/emacs/denote>. #+toc: headlines 1 insert TOC here, with one headline level +* Version 3.0.0 on 2024-06-30 +:PROPERTIES: +:CUSTOM_ID: h:bf5e869d-548f-4c77-bf1c-b7dcf6d1d4da +:END: + +This major release comes about two years after the first version of +Denote, which was published on 2022-06-27. A lot of technicalities +have changed in the meantime, though the core idea remains the same. +In fact, the original video presentation I did is still relevant, +especially for those looking to get started with Denote (but remember +to consult the latest documentation for up-to-date information---and +ask me if you have any questions). + +Version 3 iterates on refinements that we made over the life cycle of +version 2. Existing users will find that their workflow remains the +same, though they now have even more options at their disposal. + +As usual, my release notes are detailed. Please take your time to read +them: they are here for you. + +Special thanks to Jean-Philippe Gagné Guay, a long-time contributor to +the project, for working on some of the items covered herein. I am not +covering everything, as many important changes are not user-facing. +Please consult the Git log for further details. + +** File name components can be written in any order +:PROPERTIES: +:CUSTOM_ID: h:fa0ffaf5-f762-4667-abe2-350f4ea4aac5 +:END: + +[ Relevant blog post: <https://protesilaos.com/codelog/2024-05-19-emacs-denote-reorder-file-name-components/>.] + +Users can now change the variable ~denote-file-name-components-order~ +to affect how Denote file names are constructed. By default, file +names are written using this scheme (consult the manual for the +details): + +: IDENTIFIER--TITLE__KEYWORDS.EX + +An optional =SIGNATURE= field can be added, thus: + +: IDENTIFIER==SIGNATURE--TITLE__KEYWORDS.EXT + +By modifying the ~denote-file-name-components-order~, users can +produce file names like these: + +: --TITLE__KEYWORDS@@IDENTIFIER.EXT +: __SIGNATURE--TITLE__KEYWORDS@@IDENTIFIER.EXT +: __SIGNATURE--TITLE@@IDENTIFIER__KEYWORDS.EXT + +Note that when the =DATE= is not the first component, it gets the =@@= +prefix to (i) remain unambiguous and (ii) make it easy to target it +directly for search purposes. + +Thanks to Jean-Philippe Gagné Guay for the contribution in pull +request 360: <https://github.com/protesilaos/denote/pull/360>. + +We discussed the possible delimiters for the =IDENTIFIER= in issue +332: <https://github.com/protesilaos/denote/issues/332>. Thanks to +Jean-Philippe, Nick Bell, Maikol Solis, and mentalisttraceur for their +insights. Our concern was to use characters that are stylistically +fine, while they are not special symbol in regular expressions (as +those make searching a bit less convenient). + +Please remember that the file-naming scheme is the cornerstone of +Denote. If you do change how your notes are named, make sure to be +consistent throughout, otherwise you will likely make it harder for +yourself to find what you need. + +** Exclude certain files from all prompts +:PROPERTIES: +:CUSTOM_ID: h:1c751e58-2f57-4aa8-9990-4ecb73054262 +:END: + +Sometimes users keep files in their ~denote-directory~ that they do +not want to interactive with. These can, for example, be what Org +produces when exporting to another file format or when archiving a +heading. + +The user option ~denote-excluded-files-regexp~ makes is possible to +omit all those files from the relevant Denote prompts. + +This is in response to requests for such a user option done by Samuel +W. Flint and zadca123 in issues 376 and 384, respectively: + +- <https://github.com/protesilaos/denote/issues/376> +- <https://github.com/protesilaos/denote/issues/384> + +[ Please let me know if you need this feature but do not know how to + write a regular expression. I can include concrete examples in the + manual, though I need to know about them first. ] + +** Links in plain text and Markdown files are buttonised differently +:PROPERTIES: +:CUSTOM_ID: h:9f9b978f-3c2b-4b27-9ff5-ec0ac24a76d0 +:END: + +Before we were using the function ~denote-link-buttonize-buffer~, +which would create "buttons" for all the =denote:= links it would. +Users probably had something like this in their configuration: + +#+begin_src emacs-lisp +;; DEPRECATED method +(add-hook 'text-mode-hook #'denote-link-buttonize-buffer) +#+end_src + +We now provide an approach that is technically better by using Emacs' +fontification mechanism. All the user needs is to add this to their +configuration: + +#+begin_src emacs-lisp +(add-hook 'text-mode-hook #'denote-fontify-links-mode-maybe) +#+end_src + +The notion of "maybe" in the symbol of that function is because this +will take care to be activated only in the right context. + +Thanks to Abdul-Lateef Haji-Ali for the contribution in pull request +344 (further changes by me): <https://github.com/protesilaos/denote/pull/344>. + +Abdul-Lateef has assigned copyright to the Free Software Foundation. + +** How to make Org export work in a Denote silo +:PROPERTIES: +:CUSTOM_ID: h:dd39bb26-a2c0-47ad-8d54-61f1ba82d3d5 +:END: + +[ Relevant blog post: <https://protesilaos.com/codelog/2024-06-18-emacs-denote-silos-org-export/>. ] + +This is not a change in Denote per se, though I have added the +relevant details in the manual. Basically, the Org export machinery +dismisses directory-local variables, thus breaking how Denote silos +work. We can work around this by having an extra =#+bind= directive in +the front matter of each file. The manual, or the aforementioned blog +post, describe the technicalities. + +** Org headings can have their own backlinks +:PROPERTIES: +:CUSTOM_ID: h:2464625e-e041-467c-a4fd-5744e3bb79c3 +:END: + +[ Relevant blog: <https://protesilaos.com/codelog/2024-04-21-emacs-denote-heading-backlinks/>. ] + +Denote could already link to an Org heading directly. Now it can also +generate a backlinks buffer for the current heading, using the +command ~denote-org-extras-backlinks-for-heading~. + +This is part of the optional extension =denote-org-extras.el= (it is +part of the Denote package, but not loaded by default if you use +something like =(require 'denote)=). + +I am providing this as an option for those who absolutely need it, +though in my opinion it is better to have atomic notes, such that each +file contains information that is relevant as a whole. In this +workflow, individual headings can be added or removed, but the big +picture idea of the file remain intact. + +At any rate, this change is possible due to the requisite refactoring +of the code that handles the backlinks. We can technically produce +backlinks to any pattern in files, though this may be more of interest +to developers rather than foreshadow future features in core Denote. + +** Finer control over confirmations while renaming +:PROPERTIES: +:CUSTOM_ID: h:b3dc71a6-fa0b-48d1-b8a7-2842bf725092 +:END: + +The ~denote-rename-no-confirm~ is deprecated and superseded by the +more flexible user option ~denote-rename-confirmations~. + +The command ~denote-rename-file~ (and others like it) prompts for +confirmation before changing the name of a file and updating its front +matter. The user option ~denote-rename-confirmations~ controls what +the user is prompted for, if anything. Please consult its +documentation for the technicalities. + +Thanks to Jean-Philippe Gagné Guay for the contribution in pull +request 324: <https://github.com/protesilaos/denote/pull/324>. + +** The user option ~denote-save-buffer-after-creation~ is renamed to ~denote-save-buffers~ +:PROPERTIES: +:CUSTOM_ID: h:10883c47-0f5e-4267-a122-86906bf25a61 +:END: + +Please update your configuration accordingly, if you were using the +old name. + +** The commands ~denote-keywords-add~ and ~denote-keywords-remove~ are replaced by ~denote-rename-file-keywords~ +:PROPERTIES: +:CUSTOM_ID: h:042699ec-5516-44ca-93ee-60b32e599029 +:END: + +The new command can add or remove keywords. It does this by +prepopulating the minibuffer prompt with the existing keywords. Users +can then use the ~crm-separator~ (normally a comma), to write new +keywords or edit what is in the prompt to rewrite them accordingly. An +empty input means to remove all keywords. + +[ NOTE: Please check with your minibuffer user interface how to + provide an empty input. The Emacs default setup accepts the empty + minibuffer contents as they are, though popular packages like + ~vertico~ use the first available completion candidate instead. For + ~vertico~, the user must either move one up to select the prompt and + then type =RET= there with empty contents, or use the command + ~vertico-exit-input~ with empty contents. That Vertico command is + bound to =M-RET= as of this writing on 2024-06-30 10:37 +0300. ] + +Technically, ~denote-rename-file-keywords~ is a wrapper for +~denote-rename-file~, doing all the things that does. + +** The commands ~denote-rename-file-title~ and ~denote-rename-file-signature~ +:PROPERTIES: +:CUSTOM_ID: h:2c2c0f6f-413b-4492-b6a2-062034692c4c +:END: + +These are like the ~denote-rename-file-keywords~ we just covered. +There are wrappers of the ~denote-rename-file~ command, which are used +to change on the file name component they reference. + +If that component exists, its text is included in the minibuffer. The +user can then modify it accordingly. If there is no text, the user is +adding a new one. An empty input means to remove the title/signature +from the file altogether (again, check your minibuffer for how to +provide an empty input). + +** More commands to add/remove keywords in bulk from Dired +:PROPERTIES: +:CUSTOM_ID: h:01770801-c511-46c0-9a05-890276374b63 +:END: + +Two new specialised commands are available to help users add or remove +keywords from many files at once. These are: + +- ~denote-dired-rename-marked-files-add-keywords~ +- ~denote-dired-rename-marked-files-remove-keywords~. + +They complement the ~denote-dired-rename-marked-files-with-keywords~, +which we have had for a long time already, and which rewrites all the +keywords (instead of only adding/removing from the list). + +All three of those commands operate only on the =KEYWORDS= component +of the file name, leaving everything else as-is (while respecting the +aforementioned ~denote-file-name-components-order~). + +Thanks to Vedang Manerikar for the contribution in pull request 316: +<https://github.com/protesilaos/denote/pull/316>. Vedang has already +assigned copyright to the Free Software Foundation. + +** The ~denote-org-extras-convert-links-to-file-type~ can return relative paths +:PROPERTIES: +:CUSTOM_ID: h:5f97d3f5-294d-467d-858b-281e46060625 +:END: + +The previous implementation would always return an absolute file path, +ignoring the Org user option ~org-link-file-path-type~. Whereas now it +will return a relative path if that user option is set to a value of +either ='adaptive= or ='relative=. + +Thanks to Alexandre Rousseau for the contribution in pull request 325: +<https://github.com/protesilaos/denote/pull/325>. The change is small, +meaning that Alexandre does not need to assign copyright to the Free +Software Foundation. + +** For developers or advanced users +:PROPERTIES: +:CUSTOM_ID: h:6911a5d6-6de3-4e04-b9d2-12a6526b4e97 +:END: + +*** The ~denote-add-prompts~ is made public +:PROPERTIES: +:CUSTOM_ID: h:28bfa74b-5a38-4f3c-a5fe-bf5a697385db +:END: + +This is used to ~let~ bind any additional prompts that should be used +by the ~denote~ command. Check the source code for how we are using +this function. + +*** The ~denote-select-linked-file-prompt~ is now public +:PROPERTIES: +:CUSTOM_ID: h:669f8eee-bdab-406a-aada-73ee8de9caf2 +:END: + +This is used internally but the commands ~denote-find-link~, +~denote-find-backlink~. Refer to the implementation of those commands +to get an idea of how to use this prompt. + +*** The ~denote-retrieve-title-or-filename~ is just a wrapper +:PROPERTIES: +:CUSTOM_ID: h:414cfd70-1850-44bf-b0fe-fb3809af302e +:END: + +It simply calls the ~denote-retrieve-front-matter-title-value~ or +~denote-retrieve-filename-title~. We do not want it to return the +~file-name-base~, as it used to, because this will duplicate the text +of the file name when there is no =TITLE= component, as demonstrated by +duli in issue 347: <https://github.com/protesilaos/denote/issues/347>. + +*** The ~denote-file-prompt~ is more robust +:PROPERTIES: +:CUSTOM_ID: h:f7fb9e1f-e7b9-4dd1-a517-79069f28dcfe +:END: + +We have made this function show relative file paths for the +convenience of the user, but we take care to internally return and +store the full file path (which is unambiguous). Thanks to Alan +Schmitt for noting that the history was not working properly. This was +done in issue 339: <https://github.com/protesilaos/denote/issues/339>. +A series of commits dealt with the implementation details, including a +contribution by Jean-Philippe Gagné Guay in pull request 342: +<https://github.com/protesilaos/denote/pull/342>. Also read 353 for a +further set of tweaks from my side: <https://github.com/protesilaos/denote/discussions/353>. + +As part of these changes, the ~denote-file-prompt~ now takes a +=NO-REQUIRE-MATCH= argument. It also respects the aforementioned user +option of ~denote-excluded-files-regexp~. + +*** Relevant functions conform with the ~denote-rename-confirmations~ +:PROPERTIES: +:CUSTOM_ID: h:b056abdf-b9d9-4799-8e24-ae6507b4780e +:END: + +These include the ~denote-rename-file-prompt~ and +~denote-rewrite-front-matter~, as well as the new +~denote-add-front-matter-prompt~. + +This has the meaning of what I mentioned above. Commands that need to +deviate from the user option ~denote-rename-confirmations~ can ~let~ +bind it accordingly: we even do this for some commands in =denote.el=, +because certain prompts do not make sense there. + +*** All file name components can be ~let~ bound +:PROPERTIES: +:CUSTOM_ID: h:0118ad59-5fc2-4a19-8946-324410adb107 +:END: + +We define a new series of variables which can be set to a lexically +scoped value to control what the ~denote~ function parses. These are: + +- ~denote-use-date~ +- ~denote-use-directory~ +- ~denote-use-file-type~ +- ~denote-use-keywords~ +- ~denote-use-signature~ +- ~denote-use-template~ +- ~denote-use-title~ + +Employ those for custom extensions you may have. + +Thanks to Jean-Philippe Gagné Guay for adding those in pull request +365: <https://github.com/protesilaos/denote/pull/365>. + +** Miscellaneous +:PROPERTIES: +:CUSTOM_ID: h:1fc6d700-e8aa-4d05-bbae-5623a9565922 +:END: + +- All the Org dynamic blocks defined by Denote in the optional + =denote-org-extras.el= are now autoloaded. This means that + evaluating such a code block will work even if the user has not + explicitly used something like =(require 'denote-org-extras)=. + Thanks to Julian Hoch for asking for a relevant clarification in + issue 337: <https://github.com/protesilaos/denote/issues/337>. + Thanks to Kolmas for reporting some missing autoloads in issue 371: + <https://github.com/protesilaos/denote/issues/371>. + +- The value of the user option ~denote-link-backlinks-display-buffer-action~ + is slightly modified to (i) make the buffer dedicated to its window + and (ii) try to preserve its size during automatic recombinations of + the frame's layout. + +- There was a regression in version =2.3.0= relative to =2.2.0= where + the ~denote-link~ command would fail in Org capture buffers. Thanks + to Sven Seebeck for reporting this bug in issue 298: + <https://github.com/protesilaos/denote/issues/298>. + +- The ~denote-filetype-heuristics~ function no longer chokes if it + gets a nil value (such as in Org capture buffers). + +- The ~denote-journal-extras-directory~ (part of the optional + =denote-journal-extras= file) falls back to ~denote-directory~ if + its value is nil. This is what the user option + ~denote-journal-extras-directory~ promises in its doc string. + +- All prompts should have their scope of application in all capital + letters, such as =Select TEMPLATE key=. The idea is to make it + easier for the user to quickly spot for the prompt is about. + +- The user option ~denote-link-description-function~ is documented in + the manual. Thanks to Sven Seebeck for noticing that we did not + document this for the =2.3.0= release. Thanks to Jean-Philippe Gagné + Guay for helping me refine the code. This was all done in issue 298: + <https://github.com/protesilaos/denote/issues/298>. + +- As part of internal changes to how our various "rename" commands + work, Kolmas reported a regression with wrongly assigned file + extensions. This was done in issue 343: + <https://github.com/protesilaos/denote/issues/343>. + +- In the =denote-org-extras.el= we now always jump to the correct Org + heading line, instead of missing it by 1 under certain conditions. + Thanks to kilesduli for bringing this matter to my attention in + issue 354: <https://github.com/protesilaos/denote/issues/354>. + +** Policy for the aftermath of this release +:PROPERTIES: +:CUSTOM_ID: h:250e8abe-8e8d-41b9-a9dc-b2951a07d5bd +:END: + +The next few days or weeks are reserved for bug fixes. We first want +to make sure that the current code base is rock solid, before making +any further changes. Any bugs will be addressed outright and new point +releases will be published (though those are not accompanied by a +change log entry). + +** Git commits +:PROPERTIES: +:CUSTOM_ID: h:e9ea8288-99d1-407d-919a-b6024d35a501 +:END: + +Just an overview of what we did. Thanks again to everyone involved. + +#+begin_src sh +~/Git/Projects/denote $ git shortlog 2.3.0..3.0.0 --summary --numbered + 169 Protesilaos Stavrou + 52 Jean-Philippe Gagné Guay + 3 Al Haji-Ali + 2 Alan Schmitt + 1 Alexandre Rousseau + 1 Jianwei Hou + 1 Vedang Manerikar +#+end_src + * Version 2.3.0 on 2024-03-24 :PROPERTIES: :CUSTOM_ID: h:e9d3ebdb-8a69-47a9-a5a2-619abc44b7d2 diff --git a/README.org b/README.org index c35a1dd425..1b445eae9a 100644 --- a/README.org +++ b/README.org @@ -4,9 +4,9 @@ #+language: en #+options: ':t toc:nil author:t email:t num:t #+startup: content -#+macro: stable-version 2.3.0 -#+macro: release-date 2024-03-24 -#+macro: development-version 3.0.0-dev +#+macro: stable-version 3.0.0 +#+macro: release-date 2024-06-30 +#+macro: development-version 3.1.0-dev #+export_file_name: denote.texi #+texinfo_filename: denote.info #+texinfo_dir_category: Emacs misc features @@ -545,9 +545,6 @@ to the list of commands available at the ~denote-command-prompt~ :CUSTOM_ID: h:bf80f4cd-6f56-4f7c-a991-8573161e4511 :END: -[ As part of {{{development-version}}}, the user option - ~denote-save-buffer-after-creation~ is renamed to ~denote-save-buffers~. ] - #+vindex: denote-save-buffers The user option ~denote-save-buffer-after-creation~ controls whether commands that create new notes save their buffer outright. @@ -1195,8 +1192,6 @@ greater convenience. For example: :CUSTOM_ID: h:53db09de-2cec-4670-b163-5cb791f997b4 :END: -[ Part of {{{development-version}}}. ] - #+vindex: denote-excluded-files-regexp The user option ~denote-excluded-files-regexp~ is a regular expression that matches files names which should be excluded from all Denote file @@ -1316,9 +1311,6 @@ line or switching between then with commands like ~switch-to-buffer~. :CUSTOM_ID: h:7cc9e000-806a-48da-945c-711bbc7426b0 :END: -[ Revised as part of {{{development-version}}} to respect the user - options ~denote-rename-confirmations~ and ~denote-save-buffers~. ] - #+findex: denote-rename-file The ~denote-rename-file~ command renames a file and updates existing front matter if appropriate. It is possible to do the same with @@ -1428,9 +1420,6 @@ one-by-one, use ~denote-dired-rename-files~ ([[#h:1b6b2c78-42f0-45b8-9ef0-6de21a :CUSTOM_ID: h:a2ae9090-c49e-4b32-bcf5-eb8944241fd7 :END: -[ As part of {{{development-version}}} the ~denote-rename-no-confirm~ - is deprecated and superseded by the more flexible ~denote-rename-confirmations~. ] - #+vindex: denote-rename-confirmations The user option ~denote-rename-confirmations~ controls what kind of confirmation renaming commands ask for ([[#h:532e8e2a-9b7d-41c0-8f4b-3c5cbb7d4dca][Renaming files]]). Its value is @@ -1586,7 +1575,6 @@ so by writing keywords to them. Specifically, it does the following: saved in one go with the command ~save-some-buffers~ (read its doc string). ] -[ The following two commands are part of {{{development-version}}}. ] Construct the file name in accordance with the user option ~denote-file-name-components-order~ ([[#h:dc8c40e0-233a-4991-9ad3-2cf5f05ef1cd][Change the order of file name components]]). @@ -1704,7 +1692,7 @@ Concretely, this command can add or remove keywords in one go. It does it by prepopulating the minibuffer prompt with the existing keywords. Users can then use the ~crm-separator~ (normally a comma), to write new keywords or edit what is in the prompt to rewrite them -accordingly. An empty input means to remove all keywords. +accordingly. An empty input means to remove all keywords ([[#h:4e9c7512-84dc-4dfb-9fa9-e15d51178e5d][The file-naming scheme]]). [ NOTE: Please check with your minibuffer user interface how to provide an empty input. The Emacs default setup accepts the empty @@ -1862,8 +1850,6 @@ low-tech invention. :CUSTOM_ID: h:dc8c40e0-233a-4991-9ad3-2cf5f05ef1cd :END: -[ Part of {{{development-version}}}. ] - #+vindex: denote-file-name-components-order Our standard file-naming scheme prescribes a specific order for the file name components ([[#h:4e9c7512-84dc-4dfb-9fa9-e15d51178e5d][The file-naming scheme]]). Though we provide the @@ -2434,7 +2420,7 @@ fit. By contrast, the command ~denote-org-extras-link-to-heading~ prompts for a file, then a heading, and inserts the link at point. Just as with files, it is possible to show backlinks for the given -heading ([[#h:604bf92a-908a-485c-98b8-37ccae559afd][Backlinks for Org headings]]). [ Part of {{{development-version}}}. ] +heading ([[#h:604bf92a-908a-485c-98b8-37ccae559afd][Backlinks for Org headings]]). ** Insert links matching a regexp :PROPERTIES: @@ -2690,11 +2676,6 @@ Backlinks to the current file can also be visited by using the minibuffer completion interface with the ~denote-find-backlink~ command ([[#h:1bc2adad-dca3-4878-b9f0-b105d5dec6f4][Visiting linked files via the minibuffer]]). -[ As part of {{{development-version}}} the value of the user option - ~denote-link-backlinks-display-buffer-action~ is slightly modified to - (i) make the buffer dedicated to its window and (ii) try to preserve - its size during automatic recombinations of the frame's layout. ] - #+vindex: denote-link-backlinks-display-buffer-action The placement of the backlinks' buffer is subject to the user option ~denote-link-backlinks-display-buffer-action~. Due to the nature of the @@ -2720,8 +2701,6 @@ Reproducing it here for the sake of convenience: :CUSTOM_ID: h:604bf92a-908a-485c-98b8-37ccae559afd :END: -[ This is part of {{{development-version}}}. ] - The optional =denote-org-extras.el= can produce Denote links to individual headings ([[#h:fc1ad245-ec08-41be-8d1e-7153d99daf02][Insert link to an Org file with a further pointer to a heading]]). It is then possible to produce a corresponding backlinks buffer with @@ -2823,8 +2802,6 @@ that are relevant for this use-case: :CUSTOM_ID: h:156c5ea3-147b-4f9d-a404-86a00558c60a :END: -[ Part of {{{development-version}}}. ] - #+findex: denote-fontify-links-mode Denote links are automatically fontified in Org buffers ([[#h:5e5e3370-12ab-454f-ba09-88ff44214324][Adding a single link]]). This means that Org recognises the link and applies the relevant @@ -4537,9 +4514,7 @@ might change them without further notice. regular expression. With optional =OMIT-CURRENT= as a non-nil value, do not include the current Denote file in the returned list. With optional =TEXT-ONLY= as a non-nil value, limit the results to text - files that satisfy ~denote-file-is-note-p~. [ Updated as part of - {{{development-version}}} to exclude files that match the - ~denote-excluded-files-regexp~ ([[#h:53db09de-2cec-4670-b163-5cb791f997b4][Exclude certain files from file prompts]]). ] + files that satisfy ~denote-file-is-note-p~. #+findex: denote-directory-subdirectories + Function ~denote-directory-subdirectories~ :: Return list of @@ -4571,7 +4546,7 @@ might change them without further notice. replaced by a single occurence of the character, if necessary according to =COMPONENT=. If =COMPONENT= is ~keyword~, remove underscores from =STR= as they are used as the keywords separator in - file names. [ Revised as part of {{{development-version}}}. ] + file names. #+findex: denote-sluggify-keyword + Function ~denote-sluggify-keyword~ :: Sluggify =STR= while joining @@ -4707,9 +4682,7 @@ might change them without further notice. + Function ~denote-retrieve-title-or-filename~ :: Return appropriate title for =FILE= given its =TYPE=. This is a wrapper for ~denote-retrieve-front-matter-title-value~ and - =denote-retrieve-filename-title=. [ Simplified as part of - {{{development-version}}} to only be a wrapper as its doc string - suggests. ] + =denote-retrieve-filename-title=. #+findex: denote-get-identifier + Function ~denote-get-identifier~ :: Convert =DATE= into a Denote @@ -4756,7 +4729,6 @@ might change them without further notice. ~denote-prompts~. This is best done inside of a ~let~ to create a wrapper function around ~denote~, ~denote-rename-file~, and generally any command that consults the value of ~denote-prompts~. - [ Made public as part of {{{development-version}}}. ] #+findex: denote-signature-prompt + Function ~denote-signature-prompt~ :: Prompt for signature string. @@ -4773,11 +4745,7 @@ might change them without further notice. filter the candidates per the given regular expression. With optional =PROMPT-TEXT=, use it instead of the default call to select a file. With optional =NO-REQUIRE-MATCH= accept the given input - as-is. Return the absolute path to the matching file. [ Revised as - part of {{{development-version}}} to include the new - =NO-REQUIRE-MATCH= parameter. This is to simplify how we use the - various "... or create" commands internally. Also, the prompt - respects the user option ~denote-excluded-files-regexp~ ([[#h:53db09de-2cec-4670-b163-5cb791f997b4][Exclude certain files from file prompts]]).] + as-is. Return the absolute path to the matching file. #+findex: denote-keywords-prompt + Function ~denote-keywords-prompt~ :: Prompt for one or more keywords. @@ -4850,9 +4818,7 @@ might change them without further notice. #+findex: denote-rename-file-prompt - Function ~denote-rename-file-prompt~ :: Prompt to rename file named =OLD-NAME= to =NEW-NAME=. If ~denote-rename-confirmations~ does not - contain ~modify-file-name~, return t without prompting. [ Revised as - part of {{{development-version}}} to conform with the user option - ~denote-rename-confirmations~. ] + contain ~modify-file-name~, return t without prompting. #+findex: denote-rename-file-and-buffer + Function ~denote-rename-file-and-buffer~ :: Rename file named @@ -4865,16 +4831,13 @@ might change them without further notice. command and are used to construct new front matter values if appropriate. If ~denote-rename-confirmations~ contains ~rewrite-front-matter~, prompt to confirm the rewriting of the front - matter. Otherwise produce a ~y-or-n-p~ prompt to that effect. [ - Revised as part of {{{development-version}}} to conform with the - user option ~denote-rename-confirmations~. ] + matter. Otherwise produce a ~y-or-n-p~ prompt to that effect. #+findex: denote-add-front-matter-prompt + Function ~denote-add-front-matter-prompt~ :: Prompt to add a front-matter to =FILE=. Return non-nil if a new front matter should be added. If ~denote-rename-confirmations~ does not contain - ~add-front-matter~, return t without prompting. [ Part of - {{{development-version}}}. ] + ~add-front-matter~, return t without prompting. #+findex: denote-rewrite-keywords + Function ~denote-rewrite-keywords~ :: Rewrite =KEYWORDS= in =FILE= @@ -5056,8 +5019,7 @@ might change them without further notice. #+findex: denote-select-linked-file-prompt + Function ~denote-select-linked-file-prompt~ :: Prompt for linked - file among =FILES=. [ Made publicly available as part of - {{{development-version}}}. ] + file among =FILES=. #+findex: denote-link-return-links + Function ~denote-link-return-links~ :: Return list of links in diff --git a/denote.el b/denote.el index 67414d9744..6f9777c826 100644 --- a/denote.el +++ b/denote.el @@ -5,7 +5,7 @@ ;; Author: Protesilaos Stavrou <i...@protesilaos.com> ;; Maintainer: Protesilaos Stavrou <i...@protesilaos.com> ;; URL: https://github.com/protesilaos/denote -;; Version: 2.3.5 +;; Version: 3.0.0 ;; Package-Requires: ((emacs "28.1")) ;; This file is NOT part of GNU Emacs.