zk

Build

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

Demo

Here is a quick demo showcasing the new, search, tag, link and explore features.

asciicast

Installation

You can install zk using cargo (note the zkt crate name): bash $ cargo install zkt

Usage

``` zk 0.0.1

USAGE: zk

FLAGS: -h, --help Prints help information -V, --version Prints version information

SUBCOMMANDS: dir Output the Zettelkasten directory path explore Explore a notes links recursively find Find notes by tag link Link two notes new Create a new note open Open a note rm Remove a note rmlink Remove a link between two notes rmtag Remove a tag from a note search Fuzzy search notes 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):

```toml

.zk.toml

The Zettelkasten directory path.

path = '~/.zk'

The preferred editor of choice when opening

and editing notes.

editor = 'vim'

The file extension for files that reside within the

Zettelkasten directory.

ext = 'md' ```

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 📚 🔍