Sandbox configuration

This page describes the actual final sandbox/engine/quartz.config.yaml, not a proposed configuration. The source file starts from the pinned checkout’s quartz.config.default.yaml; the changes below turn it into a deliberately self-describing showcase.

Global configuration

configuration:
  pageTitle: Quartz Sandbox
  pageTitleSuffix: ' — Quartz Sandbox'
  enableSPA: true
  enablePopovers: true
  locale: en-US
  baseUrl: quartz.loca.zone
  ignorePatterns:
    - private
    - templates
    - .obsidian

Differences from upstream default:

  • pageTitle changes from Quartz 5 to Quartz Sandbox.
  • pageTitleSuffix changes from empty to — Quartz Sandbox, making browser titles self-identifying.
  • baseUrl changes from quartz.jzhao.xyz to quartz.loca.zone so canonical URLs, OG metadata, sitemap and RSS point at this host.
  • The upstream analytics block is removed: this host sends no third-party analytics.
  • The pinned default theme remains the base palette; custom.scss adds only mode-aware, scoped sandbox accents.

Plugin source model

The pinned v5 checkout loads community plugins from npm package names:

  - source: "@quartz-community/obsidian-flavored-markdown"
    enabled: true
    order: 30

This is intentionally not the older github:quartz-community/... source syntax used by the shared engine. The two local plugins use a different, explicit boundary:

  - source: ../plugins/sandbox-reading-stats
    enabled: true
    order: 900
    options:
      wordsPerMinute: 220
      locale: en
  - source: ../plugins/sandbox-manifest
    enabled: true
    order: 900
    options:
      fileName: sandbox-manifest.json
      pretty: true

Those paths resolve relative to the engine working directory and therefore land in sandbox/plugins, never in the shared checkout. After changing this list, the generated .quartz/plugins/index.ts is regenerated with PATH=/usr/bin:/bin /usr/bin/npm run install-plugins before building.

Enabled feature families

FamilyEnabled entriesReason
MarkdownObsidian Flavored Markdown, GitHub Flavored Markdown, Crawl Links, LaTeX, Syntax Highlighting, Description, Created/Modified DateEvery experiment page exercises at least one transform.
Native page typesCanvas Page, Bases PageReal .canvas and .base routes live in experiments/.
DiscoveryExplorer, Graph, Search, Backlinks, Breadcrumbs, Table of ContentsThe sandbox should be navigable and inspectable.
Metadata/visibilityNote Properties, Alias Redirects, Unlisted Pages, Encrypted PagesThese pages show both positive and negative discovery cases.
EmittersContent Index (sitemap + RSS), OG Image, local Sandbox ManifestMachine-readable output is part of the experiment, not an afterthought.
Navigation chromePage Title, Article Title, Content Meta, Dark Mode, Reader Mode, Footer, Favicon, Quartz Fonts, SpacerThe showcase uses a complete but restrained Quartz frame.

The exact order, options, layout entries, disabled rows and reasons are maintained in the generated roster page. The roster is the source-derived human view; the YAML file is the executable truth.

Layout differences

The toolbar group is explicit so its controls stay together:

layout:
  groups:
    toolbar:
      priority: 35
      direction: row
      gap: 0.5rem

breadcrumbs uses condition: not-index, so the home page does not display a redundant Home → Home trail. byPageType clears the right rail for canvas and bases routes, and removes reader mode from folder/tag pages where that narrow view is not useful. See the layout experiment for the rendered comparison.

Explicitly disabled

No analytics, comments, citations, hard-line-breaks, ox-hugo, roam, recent-notes, stacked-pages, tag-list, tag-page, cname, explicit-publish, quartz-themes/core or remove-draft? No: remove-draft stays enabled so draft pages cannot accidentally enter this public showcase. The full enabled/disabled truth table is on the plugin roster.

Isolation checklist

  • Checkout: sandbox/engine, pinned v5.0.0 commit.
  • Dependencies: sandbox/engine/node_modules from npm ci.
  • Content: sandbox/vault, never /home/loca/dev/wikis.
  • Output: a fresh sandbox/dist-<epoch> directory per build.
  • Origin proof: private loopback port 51947 belongs to the sandbox runtime; this showcase’s browser proof uses a separate private port in the 51960–51990 range.
  • Shared-engine baseline is checked before and after the build and remains branch v5, commit fd720a71db0ca16f885e75fe0d689a574960e3d9, with only its two pre-existing dirty paths.

If a feature needs a source change in the shared checkout, it is blocked rather than copied or monkey-patched here.

0 items under this folder.