Quartz Sandbox
This site is the experiment. Everything you see here is rendered by a dedicated Quartz checkout that exists for one purpose: to try out the latest Quartz plugins, layouts and rendering features on a real site, on this host, without any risk to the wikis that people actually depend on.
The documentation moved
This host used to serve the upstream Quartz documentation at the root of
quartz.loca.zone. That full documentation site now lives at https://wiki.quartz.loca.zone/ — 223 pages, byte-identical route set to the old root release. The root you are reading now is the sandbox.
What is running here
| Property | Value |
|---|---|
| Engine | https://github.com/jackyzha0/quartz.git |
| Branch | v5 (upstream default branch) |
| Commit | 3dff48b5df6d84c9544a5ae19c8f2cbb01dc44e5 |
package.json version | 5.0.0 |
| Node | /usr/bin/node v22.23.1 |
| npm | /usr/bin/npm 10.9.8 |
| Plugin distribution | npm packages @quartz-community/* (35 installed) |
| Content root | sandbox/vault/ (this vault) |
The pinned commit is on top of release tag v5.0.0
(7284f12ebf6b24e69b6cc9417e71b7d26700dc17, an ancestor of the pin). Nothing here floats:
the commit is fixed, npm ci installed from a committed lockfile, and the plugin index is
regenerated deterministically from the sandbox config.
This is isolated from the shared engine
There is a second, completely separate Quartz on this machine at
/home/loca/dev/quartz/quartz. It is the shared engine: 51 wikis are built with it.
Breaking it breaks all 51. The sandbox cannot break it, and the reasons are concrete and
structural rather than procedural:
| Isolation boundary | Shared engine | This sandbox |
|---|---|---|
| Checkout | /home/loca/dev/quartz/quartz | /home/loca/dev/quartz-sandbox/sandbox/engine |
node_modules | its own install tree | its own npm ci tree (328 packages) |
| Configuration | its own quartz.config.yaml + quartz.ts | sandbox/engine/quartz.config.yaml (this site’s) |
| Build output | wiki dist trees under /home/loca/dev/wikis | sandbox/dist-* only |
| Origin port | its own nginx upstreams | 127.0.0.1:51947, served only for this site |
| Local plugins | none of the sandbox’s | sandbox/plugins/*, resolved relatively |
So: separate checkout, separate node_modules, separate config, separate dist, separate
origin port. A plugin enabled here is not installed there. A style written here is not
compiled there. A build run here writes only into sandbox/dist-*. There is no shared
cache, no shared lockfile and no shared config file between the two trees.
Every experiment below is additionally labelled safe_for_shared_engine. That label answers
only one question — “would this change, if someone later chose to make it, be low risk for
the shared engine?” It is not permission to edit the shared engine. Nothing in this
sandbox ever does.
flowchart LR subgraph shared["shared engine (off limits)"] SE["/home/loca/dev/quartz/quartz<br/>branch v5 @ fd720a71"] W["51 wikis<br/>/home/loca/dev/wikis"] SE --> W end subgraph sbx["sandbox (this site)"] EN["engine/<br/>pinned 5.0.0 @ 3dff48b5"] VA["vault/<br/>showcase content"] PL["plugins/<br/>local sandbox plugins"] DI["dist-*/"] VA --> EN PL --> EN EN --> DI end DI --> ORIGIN["127.0.0.1:51947"] ORIGIN --> NG["nginx: quartz.loca.zone"] W --> NG2["nginx: 51 wiki vhosts"]
Experiment link map
Each page states what it demonstrates, the exact configuration or content that produces it,
what the rendered HTML proves, and its safe_for_shared_engine verdict.
| Experiment | Demonstrates |
|---|---|
| Mermaid diagrams | mermaid fences promoted to client-rendered diagrams |
| LaTeX with KaTeX | inline and display math via the latex transformer |
| Callouts and nesting | Obsidian callouts, folding, arbitrary nesting |
| Wikilinks, transclusion, block refs | link resolution, embeds, ^block-id references |
| Native canvas pages | JSON Canvas .canvas files as first-class pages |
| Native Bases pages | Obsidian .base files as server-rendered database views |
| Graph and explorer | graph tuning and file-tree explorer configuration |
| Search, RSS, sitemap | full-text search index plus content-index emitters |
| Syntax highlighting themes | build-time Shiki themes, light and dark |
| Alias redirects | aliases frontmatter emitting redirect routes |
| Properties view and layout groups | frontmatter property view, toolbar groups, byPageType |
| Unlisted and encrypted pages | pages hidden from indexes, and password-encrypted pages |
| Custom SCSS theming | sandbox-only styling through variables.scss |
| Local sandbox plugins | a transformer and an emitter loaded from ../plugins |
Reference pages
- Experiments index — the same list with status and grouping.
- Sandbox configuration — the annotated config, and every difference from the upstream default.
- Plugin roster — every plugin in the final config: kind, order, and why it is enabled or disabled.
Rules this sandbox lives by
- The shared engine at
/home/loca/dev/quartz/quartzis never read-write, never built, nevernpm installed, never re-configured. /home/loca/dev/wikisis never touched by a sandbox build.- Builds write only to
sandbox/dist-<epoch>directories; the live symlink swap is a separate, deliberate step. - Third-party analytics and comment providers stay off. See
the config page for the removed
analyticsblock. - If an experiment would require a change inside the shared engine, the experiment is reported as blocked instead of performed.