mirror of
https://github.com/protesilaos/denote.git
synced 2026-09-10 07:16:20 -04:00
Update to Denote version 2.0.0
This commit is contained in:
parent
4e2c795257
commit
df3aedacdd
579
CHANGELOG.org
579
CHANGELOG.org
|
|
@ -9,6 +9,585 @@ project's main git repository: <https://git.sr.ht/~protesilaos/denote>.
|
|||
The newest release is at the top. For further details, please consult
|
||||
the manual: <https://protesilaos.com/emacs/denote>.
|
||||
|
||||
* Version 2.0.0 on 2023-07-21
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:3f17bf03-4c47-4410-abf8-1db4a0ac7775
|
||||
:END:
|
||||
|
||||
This is the second major version of Denote, close to one year after
|
||||
its initial release. The video demo I did back then remains relevant,
|
||||
even though lots of details have changed.
|
||||
|
||||
** Notes have a new optional SIGNATURE field
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:a3a9e14d-4132-47c0-a23c-cb008a141668
|
||||
:END:
|
||||
|
||||
It is now possible to create notes that include a =SIGNATURE= field in
|
||||
their file name. Either use the convenience command ~denote-signature~
|
||||
or configure the user option ~denote-prompts~ to affect what the ~denote~
|
||||
command should prompt for.
|
||||
|
||||
Signatures are arbitrary strings of characters that enable the user to
|
||||
further qualify their documents. One possible workflow is to write
|
||||
relational notes, such that =1a1= is the first extension of another
|
||||
note with a =1a= signature.
|
||||
|
||||
The design of the =SIGNATURE= field is consistent with the Denote
|
||||
file-naming scheme. The field separator is the double equals sign
|
||||
(~==~), while words that comprise the signature are joined together by
|
||||
a single equals sign. As such, the user can prefix a search with an
|
||||
equals sign to match words in the =SIGNATURE=, just as they would use
|
||||
dashes for the =TITLE= and underscores for the =KEYWORDS=.
|
||||
|
||||
[ Read the manual for the technicalities of the Denote file-naming
|
||||
scheme. This is not limited to "notes": any file can be named
|
||||
accordingly (I do it with my videos, for example). ]
|
||||
|
||||
Signatures are not included in a file's front matter. This is a
|
||||
strategic decision to preserve backward compatibility, while not
|
||||
introducing a feature that has not enjoyed widespread usage. I want
|
||||
to make signatures behave the same as the rest of the file name
|
||||
fields, though I am interested to learn how users employ them in their
|
||||
workflow.
|
||||
|
||||
The signature extension was discussed at length on the GitHub mirror
|
||||
in issue 115: <https://github.com/protesilaos/denote/issues/115>.
|
||||
Thanks to Stefan Thesing, Mirko Hernandez, Noboru Ota (nobiot),
|
||||
Xiaoxing Hu, nbehrnd, Elias Storms, and 101scholar for helping me
|
||||
reason about this feature, understand its scope, and prototype its
|
||||
implementation.
|
||||
|
||||
Also thanks to Alfredo Borrás and Jeremy Friesen for discussing with
|
||||
me the field delimiter of signatures on the mailing list:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3C2A597B4E-5F18-4D97-9457-B3C859DAA020%40zoho.eu%3E>.
|
||||
Thanks to Kai von Fintel for doing the same on the GitHub mirror in
|
||||
issue 147: <https://github.com/protesilaos/denote/issues/147>.
|
||||
|
||||
Read the original announcement:
|
||||
<https://protesilaos.com/codelog/2023-03-20-emacs-denote-signature-feature/>.
|
||||
|
||||
As part of the development, I fixed a case where
|
||||
~denote-rename-file-using-front-matter~ would fail if it could not
|
||||
find a signature
|
||||
|
||||
The idea is that we want the command to behave the way it always did
|
||||
when the file has no signature and to preserve the signature when it
|
||||
is present.
|
||||
|
||||
Thanks to relict for reporting the issue on the mailing list:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3C87zg86lru9.fsf%40kotlak.com%3E>.
|
||||
|
||||
** The rename commands avoid creating duplicate identifiers
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:d24645a3-ad02-450c-b3d7-af7802aa0b26
|
||||
:END:
|
||||
|
||||
Denote provides commands to rename an existing file to one that
|
||||
follows the Denote file-naming scheme (videos, PDFs, other text
|
||||
documents, ...). Check, for example, the ~denote-rename-file~ and
|
||||
~denote-dired-rename-marked-files~. The idea is to make everything
|
||||
easier to search.
|
||||
|
||||
In prior versions, these commands could produce duplicate identifiers
|
||||
if the modification date of the underlying files was the same. Such a
|
||||
scenario occurs when the files are modified programmatically, as with
|
||||
the =touch= command or the various =git= operations.
|
||||
|
||||
Denote will now take care to increment the identifier until it becomes
|
||||
unique within the current scope.
|
||||
|
||||
Thanks to Felipe Balbi for reporting this bug in issue 105 on the
|
||||
GitHub mirror: <https://github.com/protesilaos/denote/issues/105>.
|
||||
|
||||
Thanks to Vedang Manerikar and Jean-Charles Bagneris for commenting on
|
||||
this feature on the mailing list:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3C87v8emeus0.fsf%40protesilaos.com%3E>.
|
||||
|
||||
Thanks to Ashton Wiersdorf for noticing a mistake I made that caused a
|
||||
regression in ~denote-rename-file~:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3Cm2lefbbzl1.fsf%40wiersdorfmail.net%3E>.
|
||||
|
||||
*** Optional arguments affect ~denote-dired-rename-marked-files~
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:6ea998be-83dd-4c67-945c-11011372818f
|
||||
:END:
|
||||
|
||||
The ~denote-dired-rename-marked-files~ now accepts two optional
|
||||
arguments. When called interactively, these are interpreted as a
|
||||
single or double universal prefix argument (=C-u= by default, though
|
||||
do =M-x where-is= and search for ~universal-argument~).
|
||||
|
||||
The first argument, named =SKIP-FRONT-MATTER-PROMPT=, skips the "yes
|
||||
or no" prompt requested at the outset of the operation, passing to it
|
||||
an affirmative response. Thanks to Jay Rajput for asking the question
|
||||
that inspired me to implement this. It was done in issue 155 on the
|
||||
GitHub mirror: <https://github.com/protesilaos/denote/issues/155>.
|
||||
|
||||
The second argument, named =NO-UNIQUE-ID-CHECK=, will not perform any
|
||||
checks for potential duplicate identifiers. The default is to check
|
||||
for duplicates and increment them such that they become unique. The
|
||||
reason this optional argument exists is for those who want to speed up
|
||||
the process, perhaps because they know ahead of time all identifiers
|
||||
will be unique or do not care about them.
|
||||
|
||||
Thanks to Bruno Boal for refining how the prefix argument is
|
||||
processed. The patch was sent via a private channel. The change is
|
||||
small and thus does not require copyright assignment to the Free
|
||||
Software Foundation.
|
||||
|
||||
** Menu entries help users discover Denote
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:651e5561-f9ce-41f6-bad3-d54ce2dcff04
|
||||
:END:
|
||||
|
||||
Users of ~menu-bar-mode~ and/or ~context-menu-mode~ will now find a
|
||||
submenu with points of entry to Denote. Refer to the publication I
|
||||
made on my website, as it includes a picture:
|
||||
<https://protesilaos.com/codelog/2023-03-31-emacs-denote-menu/>. I
|
||||
will save the thousand words for the following sections. 🙃
|
||||
|
||||
There is a known issue where the ~menu-bar-mode~ entry is positioned
|
||||
before the =File= submenu. Apparently, there exists an inelegant way
|
||||
to place the menu elsewhere, but I am not willing to maintain hacks
|
||||
for missing functionality. If someone knows a clear way to put the
|
||||
submenu elsewhere, please contact me: I want it to be after =Tools=.
|
||||
|
||||
Thanks to Kai von Fintel and Noboru Ota (nobiot) for discussing the
|
||||
placement of the submenu:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3C2B60992C-0FC9-42CC-B669-69A544450FEF%40mit.edu%3E>.
|
||||
|
||||
** "Link" commands have simpler names
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:acf95a79-3c45-423d-a88f-d6eed7fa5387
|
||||
:END:
|
||||
|
||||
Originally, Denote was organised as a collection of several files,
|
||||
each of which had its own prefix like =denote-dired.el=, and
|
||||
=denote-link.el=. This arrangement was deemed surplus to requirements
|
||||
and all core code was consolidated in =denote.el=. An artefact of
|
||||
that design was the presence of symbols that retained their admittedly
|
||||
awkward names, like the command ~denote-link-backlinks~ or
|
||||
~denote-link-add-missing-links~.
|
||||
|
||||
All such commands are deprecated. They are replaced with more
|
||||
discoverable names. The deprecation is done in such a way that the
|
||||
old names are aliases for the new ones, but the user is warned not to
|
||||
rely on them.
|
||||
|
||||
The new names in detail:
|
||||
|
||||
| Old name 🤨 | New name 🤩 |
|
||||
|-------------------------------------+---------------------------------------------------------------|
|
||||
| ~denote-link-add-links~ | ~denote-add-links~ |
|
||||
| ~denote-link-add-missing-links~ | ~denote-add-missing-links~ |
|
||||
| ~denote-link-backlinks~ | ~denote-backlinks~ |
|
||||
| ~denote-link-find-file~ | ~denote-find-link~ |
|
||||
| ~denote-link-insert-link~ | ~denote-insert-link~ (alias for ~denote-link~) |
|
||||
| ~denote-link-show-backlinks-buffer~ | ~denote-show-backlinks-buffer~ (alias for ~denote-backlinks~) |
|
||||
|
||||
** Denote buffers can have shorter names
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:98f6b10a-ea29-49d1-8d3f-e2f0409f4c8f
|
||||
:END:
|
||||
|
||||
The Denote file-naming scheme is designed to be a low-tech way of
|
||||
embedding information in files, making them easier to find. A
|
||||
downside is that the names are longer than =blah.txt= and so the
|
||||
default Emacs behaviour is to derive a buffer name from the file name.
|
||||
|
||||
The new optional =denote-rename-buffer.el= provides a minor mode to
|
||||
automatically rename the buffer of an existing file, such that it
|
||||
reflects the file's =TITLE= field. Users must enable
|
||||
~denote-rename-buffer-mode~.
|
||||
|
||||
The renaming procedure is controlled by the user option
|
||||
~denote-rename-buffer-function~. By default, it provides the means to
|
||||
rename using (i) the title, (ii) the identifier, or (iii) a custom
|
||||
function that returns a string. Experienced users can refer to
|
||||
~denote-rename-buffer-with-title~ to draw inspiration on the design of
|
||||
such a function.
|
||||
|
||||
Thanks to Morgan Davidson for asking a question that inspired me to
|
||||
implement this feature. The discussion took place in issue 151 on the
|
||||
GitHub mirror <https://github.com/protesilaos/denote/issues/151>.
|
||||
|
||||
** Silos work as directory trees
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:113820c4-7a6f-4126-9a44-92bfa59744e2
|
||||
:END:
|
||||
|
||||
Denote provides a feature to isolate files in to their own silos, each
|
||||
of which functions as its own ~denote-directory~ variable. The
|
||||
technicalities are explained in the manual. Silos have proven to be a
|
||||
valuable aspect of file management and I have thus expanded their
|
||||
scope to work as fully fledged directory trees. This means that we no
|
||||
longer assume a silo to be a flat directory listing, but instead
|
||||
recognise any subdirectories inside of it.
|
||||
|
||||
Thanks to relict007, Hilde Rhyne, Mirko Hernández, Noboru Ota
|
||||
(nobiot), Alan Schmitt, hapst3r, and Hilde Rhyne for their
|
||||
participation in the relevant discussions:
|
||||
|
||||
- <https://lists.sr.ht/~protesilaos/denote/%3C87fsb72nge.fsf%40protesilaos.com%3E>
|
||||
- <https://lists.sr.ht/~protesilaos/denote/%3C80CBB671-D812-4EA8-8C80-85F9F4144051%40disroot.org%3E>
|
||||
- <https://lists.sr.ht/~protesilaos/denote/%3C87pma6t59i.fsf%40kotlak.com%3E>
|
||||
- <https://github.com/protesilaos/denote/issues/129> (GitHub mirror)
|
||||
- <https://lists.sr.ht/~protesilaos/denote/%3CB124A5AF-9968-4F7E-9F4B-2BC763E0BFCF@disroot.org%3E#%3Cm0sff0nnhb.fsf@disroot.org%3E>.
|
||||
|
||||
** Keywords do not accept multiple words by default
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:08f23806-9570-4031-86e4-810b3e93be81
|
||||
:END:
|
||||
|
||||
The idea is to have short keywords and then use more than one, if
|
||||
necessary. We do not want to encourage the habit of long keywords
|
||||
that become overly specific, while we want to avoid the use of
|
||||
dashes as delimited in the file name's =KEYWORDS= field.
|
||||
|
||||
Technically, this changes the default value of the user option
|
||||
~denote-allow-multi-word-keywords~. Users who preferred the old
|
||||
behaviour can simply toggle it on.
|
||||
|
||||
** Pass arguments to Org capture
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:58ff6dd3-693a-4437-9217-8e876d92c975
|
||||
:END:
|
||||
|
||||
Denote is not an extension of Org mode, though it can integrate with
|
||||
~org-capture~. I now make it possible to design a capture template
|
||||
that uses specific prompts. Consult the section in the manual titled
|
||||
"Create note with specific prompts using Org capture".
|
||||
|
||||
Thanks to Aditya Yadav for asking about this in issue 132 on the
|
||||
GitHub mirror: <https://github.com/protesilaos/denote/issues/132>.
|
||||
|
||||
** Change an existing note's file type
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:e1e874e3-d8ad-4685-aa62-59ad07078db2
|
||||
:END:
|
||||
|
||||
The command ~denote-change-file-type~ changes the file type of an
|
||||
existing note. The available options are those among
|
||||
~denote-file-type~. Thanks to Jean-Philippe Gagné Guay for the
|
||||
contribution, which was done in pull request 137 on the GitHub mirror:
|
||||
<https://github.com/protesilaos/denote/pull/137>.
|
||||
|
||||
** Denote dynamic blocks can now parse ~rx~ notation
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:fe595ee7-8ba6-4ca3-aa66-35aa4e5ca0f5
|
||||
:END:
|
||||
|
||||
Denote can leverage the Org feature of "dynamic blocks" to produce
|
||||
lists of links/backlinks. This is especially useful for metanotes
|
||||
(read the Denote manual---I document everything for a reason).
|
||||
|
||||
Before, regular expressions were implemented only as strings while now
|
||||
they can also be written using the ~rx~ notation. Thanks to Mirko
|
||||
Hernandez for proposing this feature and discussing it with me in
|
||||
issue 122 on the GitHub mirror:
|
||||
<https://github.com/protesilaos/denote/issues/122>.
|
||||
|
||||
Thanks to Elias Storms, the author of =denote-org-dblock.el=, for
|
||||
iterating on this functionality. This was done in pull request 130 on
|
||||
the GitHub mirror: <https://github.com/protesilaos/denote/pull/130>.
|
||||
|
||||
** Made links to non-note files works as intended
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:431a8952-0d71-4ba6-b6ae-85e5f7d520b9
|
||||
:END:
|
||||
|
||||
The function ~denote-get-path-by-id~ is refactored to accept any file
|
||||
with an identifier. This always was its intended purpose. The user
|
||||
was always able to create =denote:= Org link types to, for example,
|
||||
=jpg= files but ~denote-get-path-by-id~ was refusing to resolve the
|
||||
otherwise valid path. Thanks to user relict007 for reporting the
|
||||
problem and discussing it with me in issue 135 on the GitHub mirror:
|
||||
<https://github.com/protesilaos/denote/issues/135>.
|
||||
|
||||
The change was not trivial. It was followed up by a patch from Noboru
|
||||
Ota (nobiot) which elaborated on the conditionality. Quoting from
|
||||
commit =9ce9a24=:
|
||||
|
||||
#+begin_quote
|
||||
fix(denote-get-path-by-id): #135
|
||||
|
||||
Reference: https://github.com/protesilaos/denote/issues/135
|
||||
|
||||
This patch change function 'denote-get-path-by-id' to allow for the following:
|
||||
|
||||
- A single ID points to multiple files with different extensions
|
||||
- Denote needs to find a single file out of the multiple files
|
||||
- This is not necessarily a user error (export an Org file to an HTML)
|
||||
- Denote should let user decide their "primary" file extension
|
||||
|
||||
The case the patch is intended to fix goes something like this:
|
||||
|
||||
- You have 20230216__mynotes--tag.org.
|
||||
- You export it to 20230216__mynotes--tag.html.
|
||||
- Both files are in denote-directory
|
||||
- This means you have two files with the same ID with different
|
||||
extensions denote-link-find-file, denote-link-find-backlink, and xref
|
||||
integration might find the html file INSTEAD OF the .org file
|
||||
|
||||
This is because html is earlier in the alphabetical order than
|
||||
org. Because the function uses seq-find, it will find the .html file
|
||||
first and returns it.
|
||||
#+end_quote
|
||||
|
||||
** The ~denote-rename-file-using-front-matter~ works with empty keywords
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:b00f228d-7f84-4d84-8d5f-ac90ea6b1065
|
||||
:END:
|
||||
|
||||
Keywords are an optional field in the Denote file-naming scheme.
|
||||
However, an earlier version of the command mentioned in this heading
|
||||
was considering them mandatory and would refuse to proceed if the
|
||||
keywords were nil. Thanks to Eduardo Grajeda for fixing this:
|
||||
<https://lists.sr.ht/~protesilaos/denote/patches/39896>.
|
||||
|
||||
The change is within the ~15 line limit and does not require copyright
|
||||
assignment to the Free Software Foundation.
|
||||
|
||||
** The ~denote-title-prompt~ has its own history
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:91f370f4-9fd1-461b-8ba4-fd9ba2d9c7a8
|
||||
:END:
|
||||
|
||||
Denote implements minibuffer histories for all its relevant functions.
|
||||
This makes it easier for users to retrieve their previous inputs and
|
||||
to not get irrelevant ones.
|
||||
|
||||
Before, the ~denote-title-prompt~ was not using its own history but
|
||||
was instead relying on another one that was intended only for file
|
||||
paths, thus mixing unrelated inputs.
|
||||
|
||||
Thanks to Jonathan Sahar for bringing this matter to my attention.
|
||||
This was done in issue 144 on the GitHub mirror:
|
||||
<https://github.com/protesilaos/denote/issues/144>.
|
||||
|
||||
** For developers or advanced users
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:dcc52671-2127-47e0-9167-003f40ca3a54
|
||||
:END:
|
||||
|
||||
*** Made it possible to add predicates for recursive file listing
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:62546ec1-6ec8-41c7-9a18-10a531b534ce
|
||||
:END:
|
||||
|
||||
The helper function ~denote--directory-all-files-recursively~ accepts
|
||||
predicates to help speed up its work.
|
||||
|
||||
Thanks to Wade Mealing for reporting the issue about the performance
|
||||
of the built-in function ~directory-files-recursively~ in large,
|
||||
nested directories. And thanks to Graham Marlow for the patch, which
|
||||
was prepared as part of an extended discussion with me:
|
||||
|
||||
- <https://lists.sr.ht/~protesilaos/denote/patches/40370>
|
||||
- <https://lists.sr.ht/~protesilaos/denote/%3C20230414000311.1981-1-graham%40mgmarlow.com%3E#%3C76ed9fe2-d597-f7b9-5e59-717aeb77c3c3@mgmarlow.com%3E>
|
||||
- <https://lists.sr.ht/~protesilaos/denote/patches/40384>
|
||||
- <https://lists.sr.ht/~protesilaos/denote/%3C87edonhvy0.fsf%40protesilaos.com%3E>
|
||||
- <https://lists.sr.ht/~protesilaos/denote/%3C76ed9fe2-d597-f7b9-5e59-717aeb77c3c3%40mgmarlow.com%3E>
|
||||
- <https://lists.sr.ht/~protesilaos/denote/%3C87zg75q4er.fsf%40protesilaos.com%3E>
|
||||
- <https://lists.sr.ht/~protesilaos/denote/%3CCAO4UgPQtxhhqW0tB7eZnVh4nF9vLvnVGx+5oB_78_dg32URSLA%40mail.gmail.com%3E>
|
||||
|
||||
*** New public symbols
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:ed723274-a78e-4cfd-9655-c3bfe0fb1e68
|
||||
:END:
|
||||
|
||||
The following are now public symbols that we commit to support and
|
||||
document henceforth:
|
||||
|
||||
+ Function ~denote-file-type-extensions~ :: Return all file type
|
||||
extensions in ~denote-file-types~.
|
||||
|
||||
+ Variable ~denote-encryption-file-extensions~ :: List of strings
|
||||
specifying file extensions for encryption.
|
||||
|
||||
+ Function ~denote-file-type-extensions-with-encryption~ :: Derive
|
||||
~denote-file-type-extensions~ plus ~denote-encryption-file-extensions~.
|
||||
|
||||
+ Function ~denote-link-return-links~ :: Return list of links in
|
||||
current or optional =FILE=. Also see ~denote-link-return-backlinks~.
|
||||
|
||||
+ Function ~denote-link-return-backlinks~ :: Return list of links in
|
||||
current or optional =FILE=. Also see ~denote-link-return-links~.
|
||||
|
||||
+ Function ~denote-rewrite-front-matter~ :: Rewrite front matter of
|
||||
note after ~denote-rename-file~ (or related) The =FILE=, =TITLE=,
|
||||
=KEYWORDS=, and =FILE-TYPE= arguments are given by the renaming
|
||||
command and are used to construct new front matter values if
|
||||
appropriate.
|
||||
|
||||
+ Function ~denote-rewrite-keywords~ :: Rewrite =KEYWORDS= in =FILE=
|
||||
outright according to =FILE-TYPE=. Do the same as
|
||||
~denote-rewrite-front-matter~ for keywords, but do not ask for
|
||||
confirmation. This is for use in ~denote-keywords-add~,
|
||||
~denote-keywords-remove~, ~denote-dired-rename-marked-files~, or
|
||||
related.
|
||||
|
||||
I am publicising the ~denote-link-return-links~ and its counterpart in
|
||||
response to the mailing list thread started by relict007:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3C87a5ygk6yi.fsf@kotlak.com%3E>.
|
||||
relict007 is the developer of the ~denote-cache~ package (in
|
||||
progress): <https://git.sr.ht/~relict007/denote-cache>.
|
||||
|
||||
Similarly, the ~denote-rewrite-keywords~ is made public upon the
|
||||
request of Alan Schmitt:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3Cm2ttzgn2wu.fsf%40m4x.org%3E>.
|
||||
|
||||
** Miscellaneous
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:918087e6-8cd5-4d4f-a11a-b465dcbd9fe3
|
||||
:END:
|
||||
|
||||
- Revised ~denote-link-return-{links,backlinks}~ to not produce a
|
||||
~user-error~. The errors are reserved for the interactive
|
||||
functions. The others are for developers. Thanks to Elias Storms for
|
||||
bringing this matter to my attention:
|
||||
<https://github.com/protesilaos/denote/commit/694c1517be73949edbc3993c105c764da8e2571f#commitcomment-112677876>.
|
||||
|
||||
- Refrained from trying to find forward links in non-text-files. If a
|
||||
file extension is not in ~denote-file-types~, we have no way of
|
||||
parsing or finding outgoing links in it. This change checks for the
|
||||
file extension early on in 'when-let*' block and avoids opening the
|
||||
file which is a relatively costly operation (and would fail finding
|
||||
links anyway). Thanks to relict007 for the patch. This was done on
|
||||
the mailing list:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3C87r0riffdx.fsf%40kotlak.com%3E>
|
||||
The change is small and thus does not require copyright assignment
|
||||
to the Free Software Foundation.
|
||||
|
||||
- Explained how to troubleshoot Denote. Refer to the section in the
|
||||
manual titled "Troubleshoot Denote in a pristine environment."
|
||||
While this is about Denote, the skills apply to all Emacs packages.
|
||||
|
||||
- Ensured backlinks get correct ~denote-directory~ path. The
|
||||
backlinks buffer will now get the correct path when it is generated
|
||||
inside a silo. This is related to issue 129 reported by hapst3r on
|
||||
the GitHub mirror: <https://github.com/protesilaos/denote/issues/129>.
|
||||
The change is necessary because =.dir-locals.el= do not work for
|
||||
buffers, so we must get the value from the file that calls
|
||||
~denote-link-backlinks~.
|
||||
|
||||
- Added missing underscore from examples in exporting section. Thanks
|
||||
to Peter Prevos for bringing this matter to my attention:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3C87fs8b85tq.fsf%40prevos.net%3E#%3C87lehiuxfo.fsf@protesilaos.com%3E>.
|
||||
|
||||
- Made the command ~denote-open-or-create~ work with an empty
|
||||
~denote-directory~. The ~denote-file-prompt~ would throw an error
|
||||
before. The correct behaviour is to proceed to the "Create" phase
|
||||
if the ~denote-directory~ is empty. Thanks to user drcxd for
|
||||
reporting the bug in issue 131 on the GitHub mirror and for testing
|
||||
my sample code: <https://github.com/protesilaos/denote/issues/131>.
|
||||
|
||||
- Documented how to use tree-based file prompt on demand. This is my
|
||||
solution to a request made by Mirko Hernandez on the possible use of
|
||||
the old Denote file prompt. It is better not to introduce a user
|
||||
option for this case, nor to keep multiple variants of the
|
||||
~denote-file-prompt~ in denote.el, as we want to keep things simple.
|
||||
Mirko's feedback was provided in issue 121 on the GitHub mirror:
|
||||
<https://github.com/protesilaos/denote/issues/121>.
|
||||
|
||||
- Added the variable ~denote-user-enforced-denote-directory~. This is
|
||||
intended for users who write custom code to extend Denote. The
|
||||
value of this variable should be ~let~ bound around calls to the
|
||||
function ~denote-directory~, thus overriding its return value. This
|
||||
was discussed on the mailing list and then introduced by Vedang
|
||||
Manerikar in commit =977c757=, with further changes by me in
|
||||
=20ddc97=: <https://lists.sr.ht/~protesilaos/denote/patches/41776>.
|
||||
Vedang has assigned copyright to the Free Software Foundation.
|
||||
|
||||
- Fixed ~my-denote-org-extract-subtree~ section of the documentation.
|
||||
This is part of some sample code that is not part of =denote.el=,
|
||||
but we provide as a convenience/inspiration for interested parties.
|
||||
|
||||
The provided function did not work correctly.
|
||||
|
||||
1. Tags are extracted before deleting the region from the source file.
|
||||
2. The function ~org-end-of-subtree~ is called to calculate the
|
||||
point we should delete up to. The previously used function
|
||||
~org-entry-end-position~ ends at the first sub-heading under the
|
||||
tree, which is not what we want. Instead, we want to cut the
|
||||
whole subtree.
|
||||
3. The date information available in the subtree is retained. We
|
||||
look for three common places for this information: the =CREATED=
|
||||
or =DATE= properties in the =PROPERTIES= drawer, and the =CLOSED=
|
||||
cookie at the element level itself.
|
||||
|
||||
Thanks to Vedang Manerikar for the contribution:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3CCABzEscbPx24LCUCc7JsMmQtVGwhou5fUH_5h+%3Dt%3Dqi4396NqNQ%40mail.gmail.com%3E>
|
||||
|
||||
- Removed the dependency on the built-in ~xdg~ library and updated the
|
||||
default value of the user option ~denote-directory~. The reason is
|
||||
that XDG is a Linux standard that does not work on other operating
|
||||
systems, according to private feedback I received.
|
||||
|
||||
- Fixed a regression for =M-p= (~previous-history-element~) in "do or
|
||||
create" commands. Read the doc string of the commands
|
||||
~denote-open-or-create~ or ~denote-link-or-create~ for how this is
|
||||
supposed to work. In short:
|
||||
|
||||
- Invoke the "do or create" command.
|
||||
- Type something that does not match a file.
|
||||
- In the following title prompt, hit =M-p= to bring back the last input.
|
||||
|
||||
I realised there was a regression when I read issue 152 on the
|
||||
GitHub mirror, which was created by user "ustcpxy":
|
||||
<https://github.com/protesilaos/denote/issues/152>. The issue is
|
||||
about skipping the file title prompt.
|
||||
|
||||
- Simplified the internal ~denote--buffer-file-names~. Thanks to Adam
|
||||
Růžička for noting that my change was not compatible with older
|
||||
Emacs versions, and for preparing the change. This was discussed in
|
||||
pull request 158 on the GitHub mirror, with my suggestion to not use
|
||||
~seq-filter~ as it affected the return value:
|
||||
<https://github.com/protesilaos/denote/pull/158>. The change is
|
||||
below the 15 line limit, meaning that Adam does have to assign
|
||||
copyright to the Free Software Foundation.
|
||||
|
||||
- Documented custom code in the manual on how to interactively select
|
||||
a silo. I am providing this in response to a request from GitHub
|
||||
user rbenit68. The discussion took place in issue 127 on the GitHub
|
||||
mirror, with the participation of Mirko Hernandez:
|
||||
<https://github.com/protesilaos/denote/issues/127>. The custom code
|
||||
I provide is the expanded version of an idea put forth by Mirko, to
|
||||
whom I am thankful.
|
||||
|
||||
- Fixed an outdated reference in the ~denote-file-types~ doc string.
|
||||
Thanks to user doolio for spotting the error and reporting it in
|
||||
issue 139 on the GitHub mirror:
|
||||
<https://github.com/protesilaos/denote/issues/139>.
|
||||
|
||||
- Cited in the manual's section "Publications about Denote" an article
|
||||
by Mohamed Suliman titled /Managing a bibliography of BiBTeX entries
|
||||
with Denote/ (2022-12-20):
|
||||
<https://www.scss.tcd.ie/~sulimanm/posts/denote-bibliography.html>.
|
||||
If you have published something related to Denote, please let me
|
||||
know and I will add to the list.
|
||||
|
||||
- Cited the essay by Summer Emacs titled /An explanation of how I use
|
||||
Emacs/ (2023-05-04):
|
||||
<https://github.com/summeremacs/howiuseemacs/blob/main/full-explanation-of-how-i-use-emacs.org>
|
||||
|
||||
- Cited the video series by Stefan Thesing titled /Denote as a
|
||||
Zettelkasten/: <https://www.thesing-online.de/blog/denote-as-a-zettelkasten/>.
|
||||
|
||||
- Added link to Karl Voit's work in the manual's section "Alternative
|
||||
implementations and further reading." Thanks to Norwid Behrnd for
|
||||
the contribution in pull request 123 on the GitHub mirror:
|
||||
<https://github.com/protesilaos/denote/pull/123>.
|
||||
|
||||
- Fixed the broken link to jao's blog. Thanks to Tomasz Hołubowicz
|
||||
for the contribution, which was done in pull request 145 on the
|
||||
GitHub mirror: <https://github.com/protesilaos/denote/pull/145>.
|
||||
|
||||
- Authored lots of other ancillary changes/features to the code base
|
||||
or the manual (yes, this change log is how I "cut the long store
|
||||
short").
|
||||
|
||||
* Version 1.2.0 on 2022-12-12
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:92478a05-4a69-413c-8d95-1dacbcf6af2c
|
||||
|
|
|
|||
94
README.org
94
README.org
|
|
@ -4,9 +4,9 @@
|
|||
#+language: en
|
||||
#+options: ':t toc:nil author:t email:t num:t
|
||||
#+startup: content
|
||||
#+macro: stable-version 1.2.0
|
||||
#+macro: release-date 2022-12-16
|
||||
#+macro: development-version 2.0.0-dev
|
||||
#+macro: stable-version 2.0.0
|
||||
#+macro: release-date 2023-07-21
|
||||
#+macro: development-version 2.1.0-dev
|
||||
#+export_file_name: denote.texi
|
||||
#+texinfo_filename: denote.info
|
||||
#+texinfo_dir_category: Emacs misc features
|
||||
|
|
@ -159,9 +159,6 @@ There are five ways to write a note with Denote: invoke the ~denote~,
|
|||
function ~denote-org-capture~. We explain all of those in the
|
||||
subsequent sections.
|
||||
|
||||
[ The ~denote-signature~ and related are part of
|
||||
{{{development-version}}}. ]
|
||||
|
||||
** Standard note creation
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:6a92a8b5-d766-42cc-8e5b-8dc255466a23
|
||||
|
|
@ -252,7 +249,7 @@ The value is a list of symbols, which includes any of the following:
|
|||
notes (Folgezettel). Signatures are not included in a file's front
|
||||
matter and are not shown in the description of a link. They are
|
||||
reserved solely for creating a sequence in a file listing, at least
|
||||
for the time being. [Part of {{{development-version}}}.]
|
||||
for the time being.
|
||||
|
||||
The prompts occur in the given order.
|
||||
|
||||
|
|
@ -419,12 +416,11 @@ commands for note creation:
|
|||
field of the file name and then asks for a title and keywords.
|
||||
Signatures are arbitrary strings of alphanumeric characters which
|
||||
can be used to establish sequential relations between file at the
|
||||
level of their file name (e.g. 1, 1a, 1b, 1b1, 1b2, ...). [Part of
|
||||
{{{development-version}}}.]
|
||||
level of their file name (e.g. 1, 1a, 1b, 1b1, 1b2, ...).
|
||||
|
||||
The ~denote-create-note-using-signature~ is an alias of the command
|
||||
~denote-signature~ intended to make the functionality more
|
||||
discoverable. [Also part of {{{development-version}}}.]
|
||||
discoverable.
|
||||
|
||||
**** Write your own convenience commands
|
||||
:PROPERTIES:
|
||||
|
|
@ -580,8 +576,6 @@ the ~denote-org-capture-specifiers~.
|
|||
:CUSTOM_ID: h:95b78582-9086-47e8-967f-62373e2369a0
|
||||
:END:
|
||||
|
||||
[ Part of {{{development-version}}}. ]
|
||||
|
||||
This section assumes knowledge of how Denote+org-capture work, as
|
||||
explained in the previous section ([[#h:656c70cd-cf9a-4471-a0b5-4f0aaf60f881][Create note using Org capture]]).
|
||||
|
||||
|
|
@ -822,9 +816,6 @@ going through Dired. Since this is specific to the user's workflow,
|
|||
it is easier to have some custom code for it. The following should be
|
||||
added to the user's Denote configuration:
|
||||
|
||||
[ NOTE that the variable ~denote-user-enforced-denote-directory~ is
|
||||
part of {{{development-version}}}. ]
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(defvar my-denote-silo-directories
|
||||
`("/home/prot/Videos/recordings"
|
||||
|
|
@ -920,8 +911,6 @@ The match is performed with ~string-match-p~.
|
|||
:CUSTOM_ID: h:c4290e15-e97e-4a9b-b8db-6b9738e37e78
|
||||
:END:
|
||||
|
||||
[ Part of {{{development-version}}}. ]
|
||||
|
||||
Denote registers a submenu for the ~menu-bar-mode~. Users will find
|
||||
the entry called "Denote". From there they can use their pointer to
|
||||
select a command. For a sample of how this looks, read the
|
||||
|
|
@ -1000,8 +989,6 @@ identifier based on the following conditions:
|
|||
variable `denote-directory', increment it such that it becomes
|
||||
unique.
|
||||
|
||||
[ The check for duplicate identifiers is part of {{{development-version}}}. ]
|
||||
|
||||
The default =TITLE= is retrieved from a line starting with a title field
|
||||
in the file's contents, depending on the given file type ([[#h:13218826-56a5-482a-9b91-5b6de4f14261][Front matter]]).
|
||||
Else, the file name is used as a default value at the minibuffer prompt.
|
||||
|
|
@ -1047,9 +1034,6 @@ not---manage such files).
|
|||
:CUSTOM_ID: h:1b6b2c78-42f0-45b8-9ef0-6de21a8b2cde
|
||||
:END:
|
||||
|
||||
[ The optional =SKIP-FRONT-MATTER-PROMPT= and =NO-UNIQUE-ID-CHECK= are added to
|
||||
~denote-dired-rename-marked-files~ as part of {{{development-version}}}. ]
|
||||
|
||||
#+findex: denote-dired-rename-marked-files
|
||||
The ~denote-dired-rename-marked-files~ command renames marked files in
|
||||
Dired to conform with our file-naming scheme. Specifically, it does
|
||||
|
|
@ -1190,8 +1174,6 @@ respective front matter.
|
|||
:CUSTOM_ID: h:85b65995-89fd-4978-bba3-7bb6c8d6f945
|
||||
:END:
|
||||
|
||||
[ Part of {{{development-version}}}. ]
|
||||
|
||||
#+findex: denote-change-file-type
|
||||
The command ~denote-change-file-type~ provides the convenience of
|
||||
converting a note taken in one file type, say, =.txt= into another
|
||||
|
|
@ -1247,9 +1229,6 @@ underscore (the separator is inserted automatically). Each keyword is
|
|||
a string provided by the user at the relevant prompt which broadly
|
||||
describes the contents of the entry.
|
||||
|
||||
[ The ~denote-allow-multi-word-keywords~ has a ~nil~ value as part of
|
||||
{{{development-version}}}. ]
|
||||
|
||||
#+vindex: denote-allow-multi-word-keywords
|
||||
Optionally, when the user option ~denote-allow-multi-word-keywords~ is
|
||||
non-nil, keywords that need to be more than one-word-long are written
|
||||
|
|
@ -1328,8 +1307,6 @@ low-tech invention.
|
|||
:CUSTOM_ID: h:ae8b19a1-7f67-4258-96b3-370a72c43f4e
|
||||
:END:
|
||||
|
||||
[ Signatures are part of {{{development-version}}}. ]
|
||||
|
||||
Denote has to be highly opinionated about which characters can be used
|
||||
in file names and the file's front matter in order to enforce its
|
||||
file-naming scheme. The variable ~denote-excluded-punctuation-regexp~
|
||||
|
|
@ -1360,8 +1337,6 @@ When a signature is present, this becomes:
|
|||
|
||||
: DATE==SIGNATURE--TITLE__KEYWORDS.EXTENSION
|
||||
|
||||
[ Signatures are part of {{{development-version}}}. ]
|
||||
|
||||
Field delimiters practically serve as anchors for easier searching.
|
||||
Consider this example:
|
||||
|
||||
|
|
@ -1642,9 +1617,6 @@ other links.
|
|||
:CUSTOM_ID: h:9bec2c83-36ca-4951-aefc-7187c5463f90
|
||||
:END:
|
||||
|
||||
[ The ~denote-add-links~ is the new name of ~denote-link-add-links~,
|
||||
as part of {{{development-version}}}. ]
|
||||
|
||||
#+findex: denote-add-links
|
||||
The command ~denote-add-links~ adds links at point matching a
|
||||
regular expression or plain string. The links are inserted as a
|
||||
|
|
@ -1707,9 +1679,6 @@ purposes ([[#h:fc913d54-26c8-4c41-be86-999839e8ad31][Linking notes]]).
|
|||
:CUSTOM_ID: h:0c1fdaab-5a6b-4792-9694-fed53cd042e6
|
||||
:END:
|
||||
|
||||
[ The ~denote-add-missing-links~ is the new name of
|
||||
~denote-link-add-missing-links~, as part of {{{development-version}}}. ]
|
||||
|
||||
#+findex: denote-add-missing-links
|
||||
As a variation on the ~denote-add-links~ command, one may wish to only
|
||||
include 'missing links', i.e. links that are not yet present in the
|
||||
|
|
@ -1811,8 +1780,7 @@ this end, Denote provides two convenience commands:
|
|||
#+findex: denote-backlinks
|
||||
The command ~denote-backlinks~ produces a bespoke buffer which
|
||||
displays backlinks to the current note. A "backlink" is a link back
|
||||
to the present entry. [ The ~denote-backlinks~ is the new name of
|
||||
~denote-link-backlinks~, as part of {{{development-version}}}.]
|
||||
to the present entry.
|
||||
|
||||
By default, the backlinks' buffer is designed to display the file name
|
||||
of the note linking to the current entry. Each file name is presented
|
||||
|
|
@ -1942,14 +1910,12 @@ For instance, a package such as =marginalia= will display accurate
|
|||
annotations, while the =embark= package will be able to work its magic
|
||||
such as in exporting the list into a filtered Dired buffer (i.e. a
|
||||
familiar Dired listing with only the files of the current minibuffer
|
||||
session). [ The ~denote-find-link~ is the new name of
|
||||
~denote-link-find-file~, as part of {{{development-version}}}.]
|
||||
session).
|
||||
|
||||
#+findex: denote-find-backlink
|
||||
To visit backlinks to the current note via the minibuffer, use
|
||||
~denote-find-backlink~. This is an alternative to placing backlinks
|
||||
in a dedicated buffer ([[#h:c73f1f68-e214-49d5-b369-e694f6a5d708][The backlinks' buffer]]). [The command is renamed
|
||||
as part of {{{development-version}}}.]
|
||||
in a dedicated buffer ([[#h:c73f1f68-e214-49d5-b369-e694f6a5d708][The backlinks' buffer]]).
|
||||
|
||||
** Miscellaneous information about links
|
||||
:PROPERTIES:
|
||||
|
|
@ -1966,12 +1932,6 @@ aliased ~denote-link-insert-links-matching-regexp~. The purpose of
|
|||
these aliases is to offer alternative, more descriptive names of
|
||||
select commands.
|
||||
|
||||
[ The ~denote-insert-link~ is the new name of ~denote-link-insert-link~,
|
||||
as part of {{{development-version}}}.]
|
||||
|
||||
[ The ~denote-show-backlinks-buffer~ is the new name of
|
||||
~denote-link-show-backlinks-buffer~, as part of {{{development-version}}}.]
|
||||
|
||||
* Fontification in Dired
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:337f9cf0-9f66-45af-b73f-f6370472fb51
|
||||
|
|
@ -2039,8 +1999,6 @@ its standand attachments' facility).
|
|||
:CUSTOM_ID: h:3ca4db16-8f26-4d7d-b748-bac48ae32d69
|
||||
:END:
|
||||
|
||||
[ Part of {{{development-version}}}. ]
|
||||
|
||||
#+findex: denote-rename-buffer-mode
|
||||
The ~denote-rename-buffer-mode~ minor mode provides the means to
|
||||
automatically rename the buffer of a Denote file upon visiting the
|
||||
|
|
@ -2362,9 +2320,6 @@ It will create a note using the heading's text and tags for the new
|
|||
file. The contents of the subtree become the contents of the new note
|
||||
and are removed from the old one.
|
||||
|
||||
[ NOTE that the variable ~denote-user-enforced-denote-directory~ is
|
||||
part of {{{development-version}}}. ]
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(defun my-denote-org-extract-subtree (&optional silo)
|
||||
"Create new Denote note using current Org subtree.
|
||||
|
|
@ -3441,7 +3396,7 @@ might change them without further notice.
|
|||
|
||||
#+findex: denote-file-has-signature-p
|
||||
+ Function ~denote-file-has-signature-p~ :: Return non-nil if =FILE=
|
||||
has a signature. [Part of {{{development-version}}}.]
|
||||
has a signature.
|
||||
|
||||
#+findex: denote-file-has-supported-extension-p
|
||||
+ Function ~denote-file-has-supported-extension-p~ :: Return non-nil
|
||||
|
|
@ -3455,7 +3410,7 @@ might change them without further notice.
|
|||
|
||||
#+findex: denote-file-type-extensions
|
||||
+ Function ~denote-file-type-extensions~ :: Return all file type
|
||||
extensions in ~denote-file-types~. [Part of {{{development-version}}}.]
|
||||
extensions in ~denote-file-types~.
|
||||
|
||||
#+variable: denote-encryption-file-extensions
|
||||
+ Variable ~denote-encryption-file-extensions~ :: List of strings
|
||||
|
|
@ -3464,8 +3419,7 @@ might change them without further notice.
|
|||
#+function: denote-file-type-extensions-with-encryption
|
||||
+ Function ~denote-file-type-extensions-with-encryption~ :: Derive
|
||||
~denote-file-type-extensions~ plus ~denote-encryption-file-extensions~.
|
||||
[Part of {{{development-version}}}.]
|
||||
|
||||
|
||||
#+findex: denote-keywords
|
||||
+ Function ~denote-keywords~ :: Return appropriate list of keyword
|
||||
candidates. If ~denote-infer-keywords~ is non-nil, infer keywords
|
||||
|
|
@ -3485,10 +3439,7 @@ might change them without further notice.
|
|||
([[#h:15719799-a5ff-4e9a-9f10-4ca03ef8f6c5][Maintain separate directories for notes]]). Custom Lisp code can
|
||||
~let~ bind the value of the variable ~denote-user-enforced-denote-directory~
|
||||
to override what this function returns.
|
||||
|
||||
[ NOTE that the variable ~denote-user-enforced-denote-directory~ is
|
||||
part of {{{development-version}}}. ]
|
||||
|
||||
|
||||
#+findex: denote-directory-files
|
||||
+ Function ~denote-directory-files~ :: Return list of absolute file
|
||||
paths in variable ~denote-directory~. Files only need to have an
|
||||
|
|
@ -3542,8 +3493,8 @@ might change them without further notice.
|
|||
=this-is-a-test= to =This is a test=.
|
||||
|
||||
#+findex: denote-sluggify-signature
|
||||
+ Function ~denote-sluggify-signature~ :: Make STR an appropriate slug
|
||||
for signatures. [Part of {{{development-version}}}]
|
||||
+ Function ~denote-sluggify-signature~ :: Make =STR= an appropriate
|
||||
slug for signatures.
|
||||
|
||||
#+findex: denote-sluggify-keywords
|
||||
+ Function ~denote-sluggify-keywords~ :: Sluggify =KEYWORDS=, which is
|
||||
|
|
@ -3586,8 +3537,7 @@ might change them without further notice.
|
|||
|
||||
#+findex: denote-retrieve-filename-signature
|
||||
+ Function ~denote-retrieve-filename-signature~ :: Extract signature
|
||||
from =FILE= name, if present, else return nil. [Part of
|
||||
{{{development-version}}}.]
|
||||
from =FILE= name, if present, else return nil.
|
||||
|
||||
#+findex: denote-retrieve-or-create-file-identifier
|
||||
+ Function ~denote-retrieve-or-create-file-identifier~ :: Return
|
||||
|
|
@ -3604,9 +3554,7 @@ might change them without further notice.
|
|||
as an identifier.
|
||||
|
||||
- As a fallback, derive an identifier from the current time.
|
||||
|
||||
[ The =FILES= argument is part of {{{development-version}}}. ]
|
||||
|
||||
|
||||
With optional =FILES= as a list of file names, test that the
|
||||
identifier is unique among them.
|
||||
|
||||
|
|
@ -3639,7 +3587,7 @@ might change them without further notice.
|
|||
|
||||
#+findex: denote-signature-prompt
|
||||
+ Function ~denote-signature-prompt~ :: Prompt for signature
|
||||
string. [Part of {{{development-version}}}.]
|
||||
string.
|
||||
|
||||
#+findex: denote-file-prompt
|
||||
+ Function ~denote-file-prompt~ :: Prompt for file with identifier in
|
||||
|
|
@ -3697,7 +3645,7 @@ might change them without further notice.
|
|||
note after ~denote-rename-file~ (or related) The =FILE=, =TITLE=,
|
||||
=KEYWORDS=, and =FILE-TYPE= arguments are given by the renaming
|
||||
command and are used to construct new front matter values if
|
||||
appropriate. [Part of {{{development-version}}}.]
|
||||
appropriate.
|
||||
|
||||
#+findex: denote-rewrite-keywords
|
||||
+ Function ~denote-rewrite-keywords~ :: Rewrite =KEYWORDS= in =FILE=
|
||||
|
|
@ -3705,7 +3653,7 @@ might change them without further notice.
|
|||
~denote-rewrite-front-matter~ for keywords, but do not ask for
|
||||
confirmation. This is for use in ~denote-keywords-add~,
|
||||
~denote-keywords-remove~, ~denote-dired-rename-marked-files~, or
|
||||
related. [Part of {{{development-version}}}.]
|
||||
related.
|
||||
|
||||
#+findex: denote-update-dired-buffers
|
||||
+ Function ~denote-update-dired-buffers~ :: Update Dired buffers of
|
||||
|
|
@ -3869,8 +3817,6 @@ might change them without further notice.
|
|||
matter =KEYWORDS= for org file type. =KEYWORDS= is a list of
|
||||
strings. Consult the ~denote-file-types~ for how this is used.
|
||||
|
||||
[ The following two functions are part of {{{development-version}}}. ]
|
||||
|
||||
#+findex: denote-link-return-links
|
||||
+ Function ~denote-link-return-links~ :: Return list of links in
|
||||
current or optional =FILE=. Also see ~denote-link-return-backlinks~.
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
;; Maintainer: Denote Development <~protesilaos/denote@lists.sr.ht>
|
||||
;; URL: https://git.sr.ht/~protesilaos/denote
|
||||
;; Mailing-List: https://lists.sr.ht/~protesilaos/denote
|
||||
;; Version: 1.2.0
|
||||
;; Version: 2.0.0
|
||||
;; Package-Requires: ((emacs "28.1"))
|
||||
|
||||
;; This file is NOT part of GNU Emacs.
|
||||
|
|
|
|||
Loading…
Reference in a new issue