stnd.build · DocumentationSTANDARD MANUALSTD-MY-NOTE · 2026-03-15
STD-MY-NOTE

My Note

Vault

The vault feature turns an Obsidian vault into a static website. Folder structure is completely ignored — only frontmatter decides what gets published and where.

Philosophy: The vault tree is private filing. The frontmatter is the public address.

Setup

Add vault to your standard() config:

// astro.config.mjs
import { defineConfig } from “astro/config”;
import standard from “@stnd/core”;

export default defineConfig({
  integrations: [
    standard({
      vault: “./vault”, // path relative to app root
    }),
  ],
});

That’s it. @stnd/core automatically injects the catch-all route and builds the page index at build time.

Frontmatter Contract

Every note that should be published must have publish: true. Everything else is private by default.

—
title: My Note
publish: true
visibility: public    # public (default) | unlisted | private
permalink: /my-note/ # canonical URL (highest priority)
—
Field Required Description
publish Yes Must be true to include the page
visibility No public (default), unlisted (built but not indexed), private (skipped)
permalink No Explicit URL — takes priority over everything
title No Slugified into URL if no permalink

URL Resolution

Priority order for generating the page URL:

  1. permalink: /my-url/ → used as-is
  2. title: My Note → slugified to /my-note
  3. Filename → slugified as last resort

Slugification uses @stnd/utils‘s slugify — apostrophes are stripped (d’humaindhumain), accents normalized, non-alphanumeric replaced with dashes.

Press resolves [[wikilinks]] against the vault index. A link matches by slug, title, or filename — so [[About – Now]] resolves even if the note’s permalink is /now/.

Images

![[image.png]] syntax is supported. Images are resolved flat across the vault (first match wins, mirroring Obsidian behavior) and copied to public/assets/vault/ at build time.

Clean Builds

The build script should wipe dist/ before each build to prevent stale pages from unpublished or renamed notes:

“build”: “rm -rf dist && astro build”

Without this, a note you unpublish or rename will still exist as an HTML file in dist/ from the previous build.

Standard OS — stnd.buildSTD-MY-NOTE · rev. 2026-03-15