Post - My Practice of Zettelkasten

Previously, I talked about my method1 of writing notes. Here’s where I’ll talk more about what steps I take to practice and implement this method.

I’m a huge fan of neovim. I sponsor the project and am super pleased with how using neovim has changed my workflow. I actually found this method of note taking on the awesome-neovim repository. It mentions a plugin neuron.nvim, which led me finally to neuron and the zettelkasten approach for note-taking.2

That being said, these are the tools I use to write my zettels. Neuron, Neovim and some fancy git hooks magic. The neuron neovim plugin3 provides excellent keybindings and telescope integration for fuzzy finding zettels.

I test the zettel locally on the local server and then deploy using this post-receive git hook

#!/bin/sh
# The production directory
TARGET="/var/www/devonmorris.dev"
# A temporary directory for deployment
TEMP="/tmp/devonmorris.dev"
# The Git repo
REPO="/srv/git/zettelkasten.git"
# Deploy the content to the temporary directory
mkdir -p $TEMP
git --work-tree=$TEMP --git-dir=$REPO checkout -f

# Deploy to github as well
git push github -f --all

# Generate site with neuron
if [ -e /home/git/.nix-profile/etc/profile.d/nix.sh ]; then . /home/git/.nix-profile/etc/profile.d/nix.sh; fi
cd $TEMP
neuron gen -o $TARGET

With that I can create a new note, link to existing notes, commit, push and deploy in minutes. This makes writing notes, making connections and updating the website a breeze!

  1. Post - My Method of Zettelkasten

    ↩︎
  2. This paragraph should be a testament to the efficacy of zettelkasten. There is probably some comparison to be made to the www being a shared zettelkasten for all people. This goes deep. Shared cognition. Society mimicking the brain. Conway’s law.

    ↩︎
  3. My configuration for this plugin

    ↩︎