Knowledge Garden Tips and Tricks

Image of Author
September 22, 2022 (last updated June 11, 2023)

Introduction

This is my Best Current Practices for Personal Knowledge Management file management.

BCPs

No top-level heading, aka h1, aka #

There are at least three different places you could "name" your file. (1) In a metadata header like ## Metadata, (2) in the filename like vault/filename.md, and (3) in the h1 header like # Title.

The only file name that has to exist is the filename itself.

You don't know how a document will evolve over time and you want to be able to easily break apart, break down, and merge documents. Being able to change the "name" of the document in a single place is invaluable.

(If you really want a h1 header or a metadata header, you can using tools to inject the filename where ever else you want it. You can also use tools to turn the title into a slug, etc.)

Use frontmatter

I'm not in love with yaml, but it has its upsides, and seems to be the blessed frontmatter format of not just Obsidian, but most online markdown tooling as well.

Frontmatter lets you add structured data to your note. It's almost like the document is now self-aware. It knows what it is. This will make it much easier for tools to read your document and know how to process it. ^b74587

Auto-format your markdown (with prettier)

Be as hands off as you can be. Avoid bike-shedding by delegating decisions.

Prettier is a formatter that does that. Call prettier --write on your whole Personal Knowledge Management and move on.

Obsidian Specific BCPs

Alias the filename

You never know when you will rename a file. Additionally, in a particular context, you might know that want to use a particular alias no matter what the filename is. For example, in a particular context, you might know you want to always use 'json' to refer to your note vault/json.md. You can guarantee this by creating and referencing a 'json' alias and then referring to it via \[\[json|json\]\]. If you change the filename to, e.g., vault/json-intro.md, it will become \[\[json-intro|json\]\], meaning 'json' still denotes the note. Lastly, you can still just never use the alias. It will always appear after the filename in the note-picker UI. So this approach has negligible downside and some convenient upsides.

Here's an example to demonstrate. Assume the file is vault/json.md

---
aliases:
  - json
  - JavaScript Object Notation
---

## Introduction

Markdown is...