mirror of
https://github.com/protesilaos/denote.git
synced 2026-09-10 07:16:20 -04:00
Update Denote to version 3.0.0
This commit is contained in:
parent
9970d09bd6
commit
05a5334c49
432
CHANGELOG.org
432
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
|
||||
|
|
|
|||
64
README.org
64
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
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
;; Author: Protesilaos Stavrou <info@protesilaos.com>
|
||||
;; Maintainer: Protesilaos Stavrou <info@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.
|
||||
|
|
|
|||
Loading…
Reference in a new issue