Development
Clew's own development workflow (local setup, testing, the manual QA vault, the release process) lives outside this site, in the repo itself - see CONTRIBUTING.md and DEVELOPMENT.md.
This page covers just the documentation site you're reading now.
Running the site locally
npm run docs:dev # dev server with hot reload
npm run docs:build # production build to docs/.vitepress/dist
npm run docs:preview # serve the production build locallyRegenerating the screenshots
Every screenshot under docs/public/screens/ is generated, not hand-captured - scripts/screenshots.mjs drives a real Obsidian instance over the Chrome DevTools Protocol (via Playwright), against a small curated vault, and captures each panel in both light and dark themes.
npm run docs:shots # requires Obsidian to be closed
npm run docs:shots -- --quit # quit a running Obsidian firstWhat it does, in order:
- Builds
.screenshot-vault/- the same demo vaultnpm run gen-test-vaultgenerates, plus the built plugin and a couple of pre-configured filters/groups so the Filter and Color & size panels aren't shown empty. - Backs up your real
obsidian.jsonand points it at that vault instead. - Launches Obsidian with remote debugging enabled and connects to it.
- Opens the graph view wide, waits for Force layout to settle, and captures each motif (graph overview, layout picker, Filter panel, Color & size panel, Appearance panel, node hover) in light and dark.
- Restores your real
obsidian.jsonand quits the launched Obsidian.
Only macOS is supported (it launches /Applications/Obsidian.app directly) - re-run it whenever a UI change should be reflected in the screenshots, and commit the resulting PNGs under docs/public/screens/ (they're deployed as static assets, not regenerated in CI - docs/** has no way to launch a real, licensed copy of Obsidian with a display).