mirror of
https://github.com/protesilaos/denote.git
synced 2026-09-10 07:16:20 -04:00
Update to version 1.0.0
This commit is contained in:
parent
e2c8d87478
commit
9b969da55c
270
CHANGELOG.org
270
CHANGELOG.org
|
|
@ -9,6 +9,276 @@ 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 1.0.0 on 2022-09-30
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:053975d7-3fe2-49e5-96a0-336483e5861c
|
||||
:END:
|
||||
|
||||
This is the first major release of Denote. A part of the changes
|
||||
documented herein is for advanced users or developers who wish to
|
||||
extend Denote with their custom code. Though we first cover what
|
||||
applies to everyone.
|
||||
|
||||
** Changes for all users
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:25692d4f-08da-4938-a81e-54070d91f51a
|
||||
:END:
|
||||
|
||||
+ The custom Org hyperlink type of =denote:= can be visited from
|
||||
outside the ~denote-directory~. We now provide the necessary glue
|
||||
code that Org needs to store these =denote:= links. Storing them
|
||||
can be done with an ~org-capture~ template or via the command
|
||||
~org-store-link~. Use this to, for example, capture a TODO that
|
||||
references one of your notes.
|
||||
|
||||
=denote:= links work for as long as the referenced file is somewhere
|
||||
in the ~denote-directory~ or one of its subdirectories.
|
||||
|
||||
Thanks to Marc Fargas for the contribution. Marc did not need to
|
||||
assign copyright to the Free Software Foundation, as the patch was
|
||||
within the ~15 line limit that is permissible.
|
||||
|
||||
The contribution was discussed on the mailing list:
|
||||
<https://lists.sr.ht/~protesilaos/denote/patches/35137>. A prior
|
||||
exchange took place in issue 104 over at the GitHub mirror:
|
||||
<https://github.com/protesilaos/denote/issues/104>.
|
||||
|
||||
Some further tweaks were made to the relevant function. Thanks to
|
||||
Elias Storms for reporting on the mailing list a bug which revealed
|
||||
a regression I introduced to the Org link storing mechanism:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3C15D55F4B-64D1-4083-AD5E-B5BACA8F1909%40ap.be%3E>.
|
||||
|
||||
+ Following from above, the command ~denote-link-find-file~ finds
|
||||
files reliably, regardless of where the link is stored. All it
|
||||
needs is for the target file to be inside the ~denote-directory~.
|
||||
|
||||
I discovered this while exchanging views with Marc Fargas regarding
|
||||
the aforementioned patch: <https://lists.sr.ht/~protesilaos/denote/patches/35137>.
|
||||
|
||||
+ The command ~denote-link-buttonize-buffer~, which "buttonizes"
|
||||
=denote:= links in plain text and Markdown files, now performs its
|
||||
task regardless of where the current file is stored. Those links
|
||||
work for as long as the file they reference is somewhere inside the
|
||||
~denote-directory~.
|
||||
|
||||
+ The commands ~denote-link-after-creating~, ~denote-link-or-create~
|
||||
provide a convenience for users who need to create link to notes
|
||||
that may not exist yet. The idea is that one is expounding on a
|
||||
given topic and wants to create a link to a relevant issue. They
|
||||
are not sure if they have written anything about it yet, so they
|
||||
invoke the relevant command. Consult their doc strings or read the
|
||||
manual: <https://protesilaos.com/emacs/denote#h:9e41e7df-2aac-4835-94c5-659b6111e6de>.
|
||||
|
||||
Thanks to user sienic for suggesting the idea and for testing the
|
||||
prototypes. And thanks to Juanjo Presa for participating in the
|
||||
discussion to share the view that this functionality should be part of
|
||||
denote.el. This happened in issue 96 over at the GitHub mirror:
|
||||
<https://github.com/protesilaos/denote/issues/96>.
|
||||
|
||||
+ The command ~denote-open-or-create~ offers the convenience of
|
||||
visiting a file, if it exists, else prompting for its creation.
|
||||
Thanks to Alan Schmitt for the contribution. The patch was sent on
|
||||
the mailing list: <https://lists.sr.ht/~protesilaos/denote/%3C87fsgvddny.fsf%40protesilaos.com%3E>.
|
||||
It is within the limit of what is allowed without assigning
|
||||
copyright to the Free Software Foundation, though Alan has done the
|
||||
relevant paperwork.
|
||||
|
||||
+ The manual expands on two sections: (1) Variants of
|
||||
~denote-open-or-create~, (2) Variants of ~denote-link-or-create~.
|
||||
They show how one can use the above "do or create" commands with
|
||||
different permutations of the Denote prompts for new note creation.
|
||||
|
||||
+ The manual includes a section titled "Create a note with the
|
||||
region's contents". Quote:
|
||||
|
||||
#+begin_quote
|
||||
Sometimes it makes sense to gather notes in a single file and later
|
||||
review it to make multiple notes out of it. With the following
|
||||
code, the user marks a region and then invokes the command
|
||||
~my-denote-create-new-note-from-region~: it prompts for a title and
|
||||
keywords and then uses the region's contents to fill in the newly
|
||||
created note.
|
||||
#+end_quote
|
||||
|
||||
This is not part of denote.el, though we provide it in the manual
|
||||
for users that may need it. Thanks to sundar bp for suggesting the
|
||||
idea. This was done via a private channel and the information is
|
||||
shared with permission.
|
||||
|
||||
+ The manual has another entry titled "Split an Org subtree into its
|
||||
own note", which is similar to the above idea of using the region's
|
||||
contents but has some extra niceties provided by Org. Quote:
|
||||
|
||||
#+begin_quote
|
||||
With Org files in particular, it is common to have nested headings which
|
||||
could be split off into their own standalone notes. In Org parlance an
|
||||
entry with all its subheadings is a "subtree". With the following code,
|
||||
the user places the point inside the heading they want to split off and
|
||||
invokes the command ~my-denote-split-org-subtree~. 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.
|
||||
#+end_quote
|
||||
|
||||
Thanks to Sven Seebeck for suggesting the idea and for testing my
|
||||
prototypes. This information is shared with permission, as it was
|
||||
provided via a private channel.
|
||||
|
||||
+ The manual describes how a user can leverage the built-in
|
||||
~dired-virtual-mode~ to perform arbitrary sorting of their list of
|
||||
notes. It also includes code for Eshell to quickly "export" a
|
||||
command's output into a dedicated buffer (which can then be used to
|
||||
derive a "virtual" Dired). Thanks to Yi Liu for asking the question
|
||||
that inspired this entry:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3C1C75FF01-EC76-49DF-9AEB-ED718A2795FF@gmail.com%3E>.
|
||||
|
||||
+ The ~denote-faces-broken-link~ has been removed. It was used for
|
||||
Org links. The idea was to apply a different style if the link was
|
||||
broken. However, the way fontification works means that there may
|
||||
be a performance penalty as Org tries to check again and again if
|
||||
the link is broken or note. As =denote:= links are robust (unless
|
||||
the user tries to break them), this penalty is unacceptable. Thanks
|
||||
to Peter Prevos for reporting the issue and discussing it with me on
|
||||
the mailing list:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3C87k05umyyo.fsf%40prevos.net%3E>.
|
||||
|
||||
+ The "denote" group in Custom UI buffers now provides a link to the
|
||||
Info manual that is shipped with the package. To read the manual,
|
||||
evaluate =(info "(denote) Top")=. Else visit the official web page:
|
||||
<https://protesilaos.com/emacs/denote>.
|
||||
|
||||
+ Fixed a case where an internal check for a note would throw an error
|
||||
if the buffer was not visiting a file. Thanks to Hilde Rhyne was
|
||||
the patch: it is below the ~15 line threshold and thus does not
|
||||
require copyright assignment to the Free Software Foundation. The
|
||||
issue was discussed on the mailing list and was pushed to users as
|
||||
version =0.6.1=:
|
||||
<https://lists.sr.ht/~protesilaos/denote/%3Cm035d7nq22.fsf%40disroot.org%3E>.
|
||||
|
||||
+ When linking to a file that has no front matter, Denote tries to use
|
||||
the TITLE component of the file name (per our file-naming scheme) as
|
||||
the link's descriptive text. We now make this look a bit better, by
|
||||
capitalising only the first letter while dehyphenating the text,
|
||||
converting =this-is-a-test= to =This is a test=. Before, we would
|
||||
capitalise all words. Thanks to Clemens Radermacher for the patch.
|
||||
It was sent via a private channel. Clemens has assigned copyright
|
||||
to the Free Software Foundation.
|
||||
|
||||
** Changes for developers or advanced users
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:165cd056-5e27-4536-b8ac-57f88c927a43
|
||||
:END:
|
||||
|
||||
Lots of functions and variables which once were for "private" use (the
|
||||
presence of double hyphens in the symbol) are now made public.
|
||||
Concretely this means that they no longer have double hyphens in their
|
||||
name and we pledge to support them henceforth. "Support" means that
|
||||
we (i) consider them stable, (ii) document them properly, (iii) will
|
||||
record any changes made to them such as in a change log, a blog post
|
||||
on my website, and via ~make-obsolete~.
|
||||
|
||||
The manual provides a complete reference of what is on offer. The
|
||||
section is titled "For developers or advanced users":
|
||||
<https://protesilaos.com/emacs/denote#h:c916d8c5-540a-409f-b780-6ccbd90e088e>.
|
||||
|
||||
Normally, we do not support private forms and can delete/modify them
|
||||
without notice. However, I decided to write obsoletion aliases for
|
||||
all forms I made public or otherwise revised, in an effort not to
|
||||
break any existing custom code. The following table covers all
|
||||
obsolete symbols and their new counterparts. PLEASE UPDATE YOUR CODE
|
||||
as those aliases will be removed in the near future.
|
||||
|
||||
| Index | Old symbol | New symbol |
|
||||
|-------+------------------------------------------------+---------------------------------------------------|
|
||||
| 1 | denote--id-format | denote-id-format |
|
||||
| 2 | denote--id-regexp | denote-id-regexp |
|
||||
| 3 | denote--title-regexp | denote-title-regexp |
|
||||
| 4 | denote--keywords-regexp | denote-keywords-regexp |
|
||||
| 5 | denote--punctuation-regexp | denote-excluded-punctuation-regexp |
|
||||
| 6 | denote-punctuation-excluded-extra-regexp | denote-excluded-punctuation-extra-regexp |
|
||||
| 7 | denote--sluggify | denote-sluggify |
|
||||
| 8 | denote--sluggify-and-join | denote-sluggify-and-join |
|
||||
| 9 | denote--sluggify-keywords | denote-sluggify-keywords |
|
||||
| 10 | denote--desluggify | denote-desluggify |
|
||||
| 11 | denote--only-note-p | denote-file-is-note-p |
|
||||
| 12 | denote--file-has-identifier-p | denote-file-has-identifier-p |
|
||||
| 13 | denote--file-supported-extension-p | denote-file-has-supported-extension-p |
|
||||
| 14 | denote--writable-and-supported-p | denote-file-is-writable-and-supported-p |
|
||||
| 15 | denote--file-name-relative-to-denote-directory | denote-get-file-name-relative-to-denote-directory |
|
||||
| 16 | denote-link--id-from-string | denote-extract-id-from-string |
|
||||
| 17 | denote--directory-files | denote-directory-files |
|
||||
| 18 | denote--subdirs | denote-directory-subdirectories |
|
||||
| 19 | denote--get-note-path-by-id | denote-get-path-by-id |
|
||||
| 20 | denote--directory-files-matching-regexp | denote-directory-files-matching-regexp |
|
||||
| 21 | denote--retrieve-read-file-prompt | denote-file-prompt |
|
||||
| 22 | denote--extract-keywords-from-path | denote-extract-keywords-from-path |
|
||||
| 23 | denote--keywords-prompt | denote-keywords-prompt |
|
||||
| 24 | denote--retrieve-filename-identifier | denote-retrieve-filename-identifier |
|
||||
| 25 | denote--file-name-id | denote-retrieve-or-create-file-identifier |
|
||||
| 26 | denote--retrieve-filename-title | denote-retrieve-filename-title |
|
||||
| 27 | denote--retrieve-title-value | denote-retrieve-title-value |
|
||||
| 28 | denote--retrieve-title-line | denote-retrieve-title-line |
|
||||
| 29 | denote--retrieve-keywords-value | denote-retrieve-keywords-value |
|
||||
| 30 | denote--retrieve-keywords-line | denote-retrieve-keywords-line |
|
||||
| 31 | denote--format-file | denote-format-file-name |
|
||||
| 32 | denote--barf-duplicate-id | denote-barf-duplicate-id |
|
||||
| 33 | denote--title-prompt | denote-title-prompt |
|
||||
| 34 | denote--file-type-prompt | denote-file-type-prompt |
|
||||
| 35 | denote--date-prompt | denote-date-prompt |
|
||||
| 36 | denote--subdirs-prompt | denote-subdirectory-prompt |
|
||||
| 37 | denote--template-prompt | denote-template-prompt |
|
||||
| 38 | denote--filetype-heuristics | denote-filetype-heuristics |
|
||||
| 39 | denote--rename-file | denote-rename-file-and-buffer |
|
||||
| 40 | denote--rename-file-prompt | denote-rename-file-prompt |
|
||||
|
||||
If you are writing code that extends Denote and feel that something is
|
||||
either missing or has remained private, please contact us on the
|
||||
mailing list, the GitHub/GitLab mirror, or send me an email directly.
|
||||
I always respond in a timely fashion.
|
||||
|
||||
** Open to everyone
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:27a391cf-8d5e-4d19-942f-46fc52dea80c
|
||||
:END:
|
||||
|
||||
The most common feedback I get about Denote is that its documentation
|
||||
is good. As you can tell from these change logs, the plan is to
|
||||
continue on this path.
|
||||
|
||||
Please note that the communication channels for Denote (mailing list,
|
||||
mirrors, my personal email) are open to users of all levels. Do not
|
||||
hesitate to contact us/me.
|
||||
|
||||
Thanks again to everyone for their contributions, direct or indirect,
|
||||
either in the form of code or the discussion of ideas. Quoting from
|
||||
the "Acknowledgements" section of the manual (all my packages have
|
||||
such a section):
|
||||
|
||||
#+begin_quote
|
||||
Denote is meant to be a collective effort. Every bit of help matters.
|
||||
|
||||
+ Author/maintainer :: Protesilaos Stavrou.
|
||||
|
||||
+ Contributions to code or the manual :: Abin Simon, Alan Schmitt,
|
||||
Benjamin Kästner, Clemens Radermacher, Colin McLear, Damien Cassou,
|
||||
Eshel Yaron, Hilde Rhyne, Jack Baty, Jean-Philippe Gagné Guay, Jürgen
|
||||
Hötzel, Kaushal Modi, Kyle Meyer, Marc Fargas, Peter Prevos, Philip
|
||||
Kaludercic, Quiliro Ordóñez, Stefan Monnier.
|
||||
|
||||
+ Ideas and/or user feedback :: Abin Simon, Alan Schmitt, Alfredo
|
||||
Borrás, Benjamin Kästner, Colin McLear, Damien Cassou, Elias Storms,
|
||||
Frank Ehmsen, Hanspeter Gisler, Jack Baty, Juanjo Presa, Kaushal
|
||||
Modi, M. Hadi Timachi, Paul van Gelder, Peter Prevos, Shreyas
|
||||
Ragavan, Summer Emacs, Sven Seebeck, Taoufik, Yi Liu, Ypot, atanasj,
|
||||
hpgisler, pRot0ta1p, sienic, sundar bp.
|
||||
|
||||
Special thanks to Peter Povinec who helped refine the file-naming
|
||||
scheme, which is the cornerstone of this project.
|
||||
|
||||
Special thanks to Jean-Philippe Gagné Guay for the numerous
|
||||
contributions to the code base.
|
||||
#+end_quote
|
||||
|
||||
* Version 0.6.0 on 2022-08-31
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:50aba79a-d702-42b4-a2a5-7fa29033f904
|
||||
|
|
|
|||
15
README.org
15
README.org
|
|
@ -4,9 +4,9 @@
|
|||
#+language: en
|
||||
#+options: ':t toc:nil author:t email:t num:t
|
||||
#+startup: content
|
||||
#+macro: stable-version 0.6.0
|
||||
#+macro: release-date 2022-08-31
|
||||
#+macro: development-version 1.0.0-dev
|
||||
#+macro: stable-version 1.0.0
|
||||
#+macro: release-date 2022-09-30
|
||||
#+macro: development-version 1.1.0-dev
|
||||
#+export_file_name: denote.texi
|
||||
#+texinfo_filename: denote.info
|
||||
#+texinfo_dir_category: Emacs misc features
|
||||
|
|
@ -1238,9 +1238,6 @@ for our purposes ([[#h:fc913d54-26c8-4c41-be86-999839e8ad31][Linking notes]]).
|
|||
:CUSTOM_ID: h:9e41e7df-2aac-4835-94c5-659b6111e6de
|
||||
:END:
|
||||
|
||||
[ The ~denote-link-after-creating~ and ~denote-link-or-create~ are part
|
||||
of {{{development-version}}}. ]
|
||||
|
||||
In one's note-taking workflow, there may come a point where they are
|
||||
expounding on a certain topic but have an idea about another subject
|
||||
they would like to link to ([[#h:fc913d54-26c8-4c41-be86-999839e8ad31][Linking notes]]). The user can always rely on
|
||||
|
|
@ -1955,8 +1952,6 @@ Git).
|
|||
:CUSTOM_ID: h:ad91ca39-cf10-4e16-b224-fdf78f093883
|
||||
:END:
|
||||
|
||||
[ Part of {{{development-version}}} ]
|
||||
|
||||
#+findex: denote-open-or-create
|
||||
The command ~denote-open-or-create~ prompts to visit a file in the
|
||||
~denote-directory~. If the user input does not have any matches,
|
||||
|
|
@ -2024,8 +2019,6 @@ For templates, refer to `denote-templates'."
|
|||
:CUSTOM_ID: h:b6056e6b-93df-4e6b-a778-eebd105bac46
|
||||
:END:
|
||||
|
||||
[ Part of {{{development-version}}} ]
|
||||
|
||||
#+findex: denote-link-or-create
|
||||
The command ~denote-link-or-create~ uses ~denote-link~ on a =TARGET=
|
||||
file, creating it if necessary. The =TARGET= matches the user input at
|
||||
|
|
@ -2262,8 +2255,6 @@ Everything is in place to set up the package.
|
|||
:CUSTOM_ID: h:c916d8c5-540a-409f-b780-6ccbd90e088e
|
||||
:END:
|
||||
|
||||
[ Part of {{{development-version}}} ]
|
||||
|
||||
Denote is in a stable state and can be relied upon as the basis for
|
||||
custom extensions. Further below is a list with the functions or
|
||||
variables we provide for public usage. Those are in addition to all
|
||||
|
|
|
|||
|
|
@ -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: 0.6.1
|
||||
;; Version: 1.0.0
|
||||
;; Package-Requires: ((emacs "27.2"))
|
||||
|
||||
;; This file is NOT part of GNU Emacs.
|
||||
|
|
|
|||
Loading…
Reference in a new issue