3 releases
0.0.3 | Dec 26, 2021 |
---|---|
0.0.2 | Jul 3, 2021 |
0.0.1 | Jul 2, 2021 |
#14 in #note-taking
330KB
852 lines
zk
A note-taking tool based on the famous Zettelkasten method with support for fuzzy searching, tags & link exploration, in Rust!
What is a Zettelkasten?
A zettelkasten, or 'slip box' is a method of note-taking famously used by the sociologist Niklas Luhmann. Notes essentially contain metadata such as tags that describe key aspects of the note or links to other notes. The goal is to enhance creativity by exploring the relationships between notes and making new connections between seemingly unrelated ideas.
Features
- Fast fuzzy search and link exploration powered by skim
- Works with a flat directory of markdown files
- Minimal configuration with sensible defaults
Demo
Here is a quick demo showcasing the new, search, tag, link and explore features.
Installation
You can install zk
using cargo (note the zkt
crate name):
$ cargo install zkt
Usage
zk 0.0.3
USAGE:
zk <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
dir Output the Zettelkasten directory path
explore <name> Explore a notes links recursively
find <tag> Find notes by tag
link <left> <right> Link two notes
new <name> Create a new note
open <name> Open a note
rm <name> Remove a note
rmlink <left> <right> Remove a link between two notes
rmtag <name> <tag> Remove a tag from a note
search Fuzzy search notes
tag <name> <tag> Add a tag to a note
help Prints this message or the help of the given subcommand(s)
Configuration
zk
currently looks for a configuration file called .zk.toml
using the
rust-xdg crate.
If a configuration file is found it must have the following key-value pairs set (default values are shown below if no configuration file is present):
# .zk.toml
# The Zettelkasten directory path.
path = '~/.zk'
# The preferred editor of choice when opening
# and editing notes.
editor = 'vim'
Keybindings
The fuzzy finder skim
supports the implementation of custom keybindings, this
section documents the custom keybindings that are implemented when using
various commands.
Command | Keybindings |
---|---|
explore | <C-e> - Edit the selected noteEnter - Explore the selected notes links |
Related work
srid/neuron
- Future-proof note-taking and publishing based on Zettelkasten
AndrewCopeland/zettelkasten
- Creating notes with the zettelkasten note taking method and storing all notes on github
sirupsen/zk
- Zettelkasten on the command-line 📚 🔍
Dependencies
~13–22MB
~327K SLoC