Creating denote notes with signatures that correspond with a folgezettel id can be cumbersome and error prone; denote folgezettel (abbreviated denote-fz) provides commands for automatic signature creation and for convenient navigation through a zettelkasten.
Download denote-fz.el
, then use M-x package-install-file
.
M-x package-initialize
may be required to immediately recognize the package after installation.
Denote 2.0.0 or above is required.
For now sed and awk are also required for sorting dired buffers.
denote-fz is primarily a set of commands, each can be used on its own.
All the commands use the current directory (default-directory
) they
are supposed to be used from a folgezettel note or a directory
containing one.
Enabling the mode in a zettelkasten silo (as a subdirectory). Just add the following
variable in the .dir-locals.el
file.
((nil . ((denote-fz-mode . t))))
If the directory itself is set as a silo, .dir-locals.el
should look similar to
this.
((nil . ((denote-directory . default-directory)
(denote-fz-mode . t))))
denote-fz-command-map
includes some denote-fz bindings, it requires
(define-key denote-fz-mode-map (kbd "C-c z") denote-fz-command-map)
For convenience all the navigation commands are added to the repeat-map
.
command | binding |
---|---|
denote-fz-insert |
I |
denote-fz-insert-dwim |
i |
denote-fz-insert-at-level |
L |
denote-fz-insert-at-level-dwim |
l |
denote-fz-unnumbered |
u |
denote-fz-find-note |
f |
denote-fz-unnumbered-cycle |
t |
denote-fz-goto-previous |
k |
denote-fz-goto-next |
j |
denote-fz-goto-nested |
n |
denote-fz-goto-upper-level |
p |
denote-fz-cycle |
c |
denote-fz-follow-through |
. |
denote-fz-backward-follow-through |
, |
denote-fz-dired-mode |
d |
denote-fz-dired-top-level-notes |
m |
denote-fz-insert-section-dblock |
q |
denote-fz-insert-full-section-dblock |
w |
Note
Nested notes in a zettelkasten are not necessarily organized in a hierarchy. The commands are named in a neutral way to avoid denoting a specific relationship between the notes.
- denote-fz-first-note
- denote-fz-unnumbered
- denote-fz-insert
- denote-fz-insert-at-level
- denote-fz-insert-dwim
- denote-fz-insert-at-level-dwim
- denote-fz-add-signature
- denote-fz-add-signature-at-level
- denote-fz-unnumbered-cycle
- denote-fz-find-note
- denote-fz-goto-upper-level
- denote-fz-goto-nested
- denote-fz-goto-next
- denote-fz-goto-previous
- denote-fz-cycle
- denote-fz-follow-through
- denote-fz-backward-follow-through
- denote-fz-dired-mode
- denote-fz-dired-section
- denote-fz-dired-section-up
- denote-fz-dired-top-level-notes
Creates a note with signature "1".
Creates a note with signature "un".
Prompts for a target note and creates a nested note based in the target note's signature. A target note with a signature 2a4 would create the note 2a4a, if that note is already created it keeps looking for a valid signature for note creation.
Prompts for a target note and creates a note at level with the target note's signature. A target note with a signature 2a4 would create a note 2a5, if that note is already created it keeps looking for a valid signature for note creation.
Same as denote-fz-insert but uses the current buffer's signature as the target.
Same as denote-fz-insert-at-level but uses the current buffer's signature as the target.
Add a signature to an unnumbered note selecting a target note and creating a nested note using its signature.
Add a signature to an unnumbered note selecting a target note and creating a note at level using its signature.
Cycle between unnumbered notes.
Find a note using the minibuffer, the notes are sorted and pretty printed.
Find the upper level note corresponding with the current buffer's signature. Example: Using it in a 2a4 signature would find the 2a signature.
Find the first nested note corresponding with the current buffer's signature. Example: Using it in a 2a4 signature would find the 2a4a signature.
Find the next note at level with the current buffer's signature. Example: Using it in a 2a4 signature would find the 2a5 signature.
Find the previous note at level with the current buffer's signature. Example: Using it in a 2a4c signature would find the 2a4b signature.
Like denote-fz-goto-next
but it moves to the first note of the
sequence if it reaches the end.
Find the next contiguous note.
Find the previous contiguous note.
Insert dblock with a regexp corresponding with the section of the current buffer's id.
Insert dblock with a regexp corresponding with the full-section of the current buffer's id.
Opens a dired buffer with the notes sorted by the folgezettel id.
Opens a dired buffer with the notes corresponding with all the descendants of the dired file at point.
Opens a dired buffer with the notes corresponding with all the descendants of the upper level of the dired file at point.
Opens a dired buffer with all the top level notes.