Emacs: denote version 0.1.0
Denote is a simple note-taking tool. It is based on the idea that notes should follow a predictable and descriptive file-naming scheme. The file name must offer a clear indication of what the note is about, without reference to any other metadata. Denote basically streamlines the creation of such files while providing facilities to link between them. Below are the release notes.
The present entry is intended for early adopters of Denote who may have not caught up with the latest developments. Prospective users are advised to read the manual: https://protesilaos.com/emacs/denote. For a video demonstration: https://protesilaos.com/codelog/2022-06-18-denote-demo/.
denotepackage on GNU ELPA will be available a few hours after this release. GNU ELPA provides the latest stable release. To use a development snapshot, read: https://protesilaos.com/codelog/2022-05-13-emacs-elpa-devel/.
Remember that any significant contribution (above ~15 lines) requires copyright assignment to the Free Software Foundation. A form with instructions is included in the manual’s “Contributing” section: https://protesilaos.com/emacs/denote#h:1ebe4865-c001-4747-a6f2-0fe45aad71cd.
The front matter of notes in Org has changed to be compliant with the standard
PROPERTIESdrawer is added to the top of the file, which includes an
IDproperty with the value of the Denote identifier. Sample:
:PROPERTIES: :ID: 20220610T202537 :END: #+title: Sample Org front matter #+date: 2022-06-10 #+filetags: denote testing
The front matter of Markdown (YAML or TOML) and plain text files remains constant. For completeness, this is how they look:
--- title: "Sample with Markdown and YAML" date: 2022-06-10 tags: denote testing identifier: "20220610T202021" --- +++ title = "Sample with Markdown and TOML" date = 2022-06-10 tags = ["denote", "testing"] identifier = "20220610T201510" +++ title: Sample plain text date: 2022-06-10 tags: denote testing identifier: 20220610T202232 ---------------------------
The integration with
org-idextends to how linking works. By default, Denote uses its own custom hyperlink type which starts with the
denote:prefix. In Org, it works like the
file:type. When the user option
denote-link-use-org-idis non-nil, links from Org notes to other Org notes will use the standard
id:type instead. As this is an Org-specific feature, Denote takes care to use the major-mode-agnostic
denote:type when the link targets a non-Org note.
In Org files the links created by Denote are buttonized automatically. For Markdown and plain text, we use our own methods. When a link is inserted it is buttonized outright. To buttonize links in existing notes while visiting them in a buffer, add/evaluate this (it excludes Org on its own):
(add-hook 'find-file-hook #'denote-link-buttonize-buffer)
The generation of the backlinks’ buffer now uses the built-in
xreflibrary instead of relying on a hardcoded call to the
findexecutable. This means that the
denote-link-backlinkscommand will, in principle, work properly with all Emacs builds.
Users of Emacs 28 or higher can configure
xref-search-programto change from the default
ugrep, or a user-defined alternative.
This is the first stable release of Denote. It covers close to 400 commits starting from 2022-06-04. Denote is the successor to a toy package of mine, USLS, whose first public version was made available in early November 2020: https://gitlab.com/protesilaos/usls.
Thanks to everyone involved in the development of Denote. Code contributions, bug reports, discussion of ideas, are all valuable. From A-Z the names mentioned in the manual’s “Acknowledgements” section: Colin McLear, Damien Cassou, Frank Ehmsen, Jack Baty, Kaushal Modi, Peter Povinec, Sven Seebeck, Ypot.
Sources of Denote:
- Package name (GNU ELPA):
- Official manual: https://protesilaos.com/emacs/denote
- Change log: https://protesilaos.com/emacs/denote-changelog
- Git repo on SourceHut: https://git.sr.ht/~protesilaos/denote
- Mailing list: https://lists.sr.ht/~protesilaos/denote
- Package name (GNU ELPA):