arrow-js-obsidian-templates
Installation
SKILL.md
Arrow.js Templates (v1.0.6)
Rules for writing html\`` templates that render correctly in the browser and
inside an Obsidian plugin. Several of these are hard runtime errors, not style.
Reactive vs static — the core rule
import { html, reactive } from "@arrow-js/core"
const data = reactive({ count: 0 })
html`<span>${data.count}</span>` // ❌ renders ONCE — never updates
html`<span>${() => data.count}</span>` // ✅ tracked — updates only this slot
${value} is read once at mount. ${() => value} is tracked: Arrow records the
reactive reads inside the function and re-runs only that slot when they
change. Forgetting () => is the #1 "why isn't it updating" bug.