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

PropertyValue
Enginehttps://github.com/jackyzha0/quartz.git
Branchv5 (upstream default branch)
Commit3dff48b5df6d84c9544a5ae19c8f2cbb01dc44e5
package.json version5.0.0
Node/usr/bin/node v22.23.1
npm/usr/bin/npm 10.9.8
Plugin distributionnpm packages @quartz-community/* (35 installed)
Content rootsandbox/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 boundaryShared engineThis sandbox
Checkout/home/loca/dev/quartz/quartz/home/loca/dev/quartz-sandbox/sandbox/engine
node_modulesits own install treeits own npm ci tree (328 packages)
Configurationits own quartz.config.yaml + quartz.tssandbox/engine/quartz.config.yaml (this site’s)
Build outputwiki dist trees under /home/loca/dev/wikissandbox/dist-* only
Origin portits own nginx upstreams127.0.0.1:51947, served only for this site
Local pluginsnone of the sandbox’ssandbox/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"]

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.

ExperimentDemonstrates
Mermaid diagramsmermaid fences promoted to client-rendered diagrams
LaTeX with KaTeXinline and display math via the latex transformer
Callouts and nestingObsidian callouts, folding, arbitrary nesting
Wikilinks, transclusion, block refslink resolution, embeds, ^block-id references
Native canvas pagesJSON Canvas .canvas files as first-class pages
Native Bases pagesObsidian .base files as server-rendered database views
Graph and explorergraph tuning and file-tree explorer configuration
Search, RSS, sitemapfull-text search index plus content-index emitters
Syntax highlighting themesbuild-time Shiki themes, light and dark
Alias redirectsaliases frontmatter emitting redirect routes
Properties view and layout groupsfrontmatter property view, toolbar groups, byPageType
Unlisted and encrypted pagespages hidden from indexes, and password-encrypted pages
Custom SCSS themingsandbox-only styling through variables.scss
Local sandbox pluginsa 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

  1. The shared engine at /home/loca/dev/quartz/quartz is never read-write, never built, never npm installed, never re-configured.
  2. /home/loca/dev/wikis is never touched by a sandbox build.
  3. Builds write only to sandbox/dist-<epoch> directories; the live symlink swap is a separate, deliberate step.
  4. Third-party analytics and comment providers stay off. See the config page for the removed analytics block.
  5. If an experiment would require a change inside the shared engine, the experiment is reported as blocked instead of performed.