No description
Find a file
2026-06-03 15:25:38 +02:00
.github/workflows build: bundle dependencies and ship pre-built dist 2026-04-27 21:37:25 +02:00
dist chore(deps): update @quartz-community/utils 2026-06-03 15:25:38 +02:00
src feat: allow embedding arbitrary page frames 2026-05-23 01:13:47 +02:00
test test: added tests for arbitrary page frames and transclusion 2026-05-23 01:14:06 +02:00
types chore: centralize type declarations and standardize tooling config 2026-03-16 18:55:26 +01:00
.eslintrc.json chore: centralize type declarations and standardize tooling config 2026-03-16 18:55:26 +01:00
.gitignore chore: commit dist/ and remove prepare script 2026-03-14 21:57:17 +01:00
.prettierignore chore: centralize type declarations and standardize tooling config 2026-03-16 18:55:26 +01:00
.prettierrc Initial commit 2026-02-14 14:33:48 +01:00
CHANGELOG.md Initial commit 2026-02-14 14:33:48 +01:00
LICENSE Initial commit 2026-02-14 14:33:48 +01:00
package-lock.json chore(deps): update @quartz-community/utils 2026-06-03 15:25:38 +02:00
package.json docs: add missing defaultOptions and optionSchema to package.json manifest 2026-05-22 20:06:19 +02:00
README.md docs: update README for v5 unified config system 2026-02-25 16:07:03 +01:00
tsconfig.build.json fix: use separate tsconfig for DTS build to avoid vitest dependency 2026-03-22 13:12:01 +01:00
tsconfig.json Initial commit 2026-02-14 14:33:48 +01:00
tsup.config.ts build: bundle dependencies and ship pre-built dist 2026-04-27 21:37:25 +02:00
vitest.config.ts Initial commit 2026-02-14 14:33:48 +01:00

@quartz-community/canvas-page

A page type plugin that renders JSON Canvas (.canvas) files as interactive, pannable and zoomable canvas pages. Supports the full JSON Canvas 1.0 spec, including text nodes with Markdown rendering, file nodes that link to other pages, link nodes for external URLs, group nodes for visual organization, and edges between nodes rendered as SVG paths with optional labels, arrow markers, and colors.

Installation

npx quartz plugin add github:quartz-community/canvas-page

Usage

plugins:
  - source: github:quartz-community/canvas-page
    enabled: true

For advanced use cases, you can override in TypeScript:

import * as ExternalPlugin from "./.quartz/plugins";

ExternalPlugin.CanvasPage({
  enableInteraction: true,
  defaultFullscreen: false,
});

Features

  • Text nodes: Render Markdown content including headings, bold, italic, strikethrough, lists, links, and code blocks via GFM support.
  • File nodes: Link to other pages in your vault with popover previews on hover.
  • Link nodes: Reference external URLs.
  • Group nodes: Visual grouping containers with optional labels and background colors.
  • Edges: SVG connections between nodes with optional labels, arrow markers, and colors. Supports all four sides and both preset colors (16) and custom hex colors.
  • Fullscreen mode: Toggle button to expand the canvas to fill the viewport. Configurable default via defaultFullscreen.
  • Preset colors: Six preset colors (red, orange, yellow, green, cyan, purple) plus custom hex colors for nodes and edges.

Configuration

Option Type Default Description
enableInteraction boolean true Whether to enable pan and zoom interaction on the canvas.
initialZoom number 1 The initial zoom level when the canvas is first displayed.
minZoom number 0.1 The minimum zoom level allowed when zooming out.
maxZoom number 5 The maximum zoom level allowed when zooming in.
defaultFullscreen boolean false Whether canvas pages default to fullscreen mode.

Documentation

See the Quartz documentation for more information.

License

MIT