Writing

How this blog works

note#meta#obsidian

This site is written in Obsidian and built by Astro. Each post is a plain Markdown file in a git repository, so nothing is locked in. Pushing to main deploys it.

The path from a note to the site

Links use Obsidian’s syntax. A plain link shows the post’s title: Don’t break the chain. An alias changes the words: like this. A heading link jumps to a section: Don’t break the chain › Why apostrophes matter. A block link lands on one paragraph: the rule.

Links to notes that don’t exist yet stay as plain text, like A post for another day. The site never shows a broken link.

Every link also counts backwards. Open Don’t break the chain and you’ll find this post under “Linked from”. The graph is drawn from those same links.

Callouts

Folded callouts open on click

This one starts closed. Use + instead of - to start open.

Small things

You can highlight text and use inline code. Comments like the one in this sentence are removed from the page, so they’re safe for notes to yourself.

const greeting: string = 'Code blocks are highlighted at build time';

Interactive pieces

A fenced block with a registered language becomes a live React component. In Obsidian it stays a tidy code block:

```sim
type: loop
speed: 2
```

On the site, it runs:

The fence above, running. Try the speed slider.

The same fence takes other props:

Each one loads its JavaScript only when it scrolls into view, so a post with no interactive pieces ships no JavaScript at all.

Longer pieces

Some posts need their own layout, like The loop, step by step. The prose stays in Obsidian and the layout lives in Astro.