docs: replace manual plugin tables with inline .base files
Plugin listings in plugins/index.md and getting-started/whats-new.md are now generated from .base files that query plugin docs by their tags. This prevents the tables from going out of sync when plugins are added or updated. Added new-in-v5 frontmatter property to 8 plugin docs for the what's-new page filter.
This commit is contained in:
19
docs/getting-started/NewPlugins.base
Normal file
19
docs/getting-started/NewPlugins.base
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
filters:
|
||||||
|
and:
|
||||||
|
- file.ext == "md"
|
||||||
|
- file.inFolder("plugins")
|
||||||
|
- note.new-in-v5 == true
|
||||||
|
properties:
|
||||||
|
title:
|
||||||
|
displayName: Plugin
|
||||||
|
description:
|
||||||
|
displayName: Description
|
||||||
|
views:
|
||||||
|
- type: table
|
||||||
|
name: New in v5
|
||||||
|
order:
|
||||||
|
- title
|
||||||
|
- description
|
||||||
|
sort:
|
||||||
|
- property: title
|
||||||
|
direction: ASC
|
||||||
@@ -153,16 +153,7 @@ Quartz 5 supports multiple locales out of the box. Set `locale: ja-JP` (or any s
|
|||||||
|
|
||||||
Plugins new to v5 (not available in v4):
|
Plugins new to v5 (not available in v4):
|
||||||
|
|
||||||
| Plugin | Description |
|
![[NewPlugins.base]]
|
||||||
| ------------------ | ------------------------------------------------------ |
|
|
||||||
| [[CanvasPage]] | Renders `.canvas` files as interactive pages |
|
|
||||||
| [[BasesPage]] | Database-style views with filters, sorts, and grouping |
|
|
||||||
| [[EncryptedPages]] | Password-protect individual pages |
|
|
||||||
| [[NoteProperties]] | Display frontmatter properties on the page |
|
|
||||||
| [[UnlistedPages]] | Hide pages from navigation while still publishing them |
|
|
||||||
| [[StackedPages]] | Andy Matuschak-style stacked page navigation |
|
|
||||||
| [[ReaderMode]] | Distraction-free reading toggle |
|
|
||||||
| [[Spacer]] | Flexible spacer for layout adjustments |
|
|
||||||
|
|
||||||
## For Plugin Developers
|
## For Plugin Developers
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ tags:
|
|||||||
- plugin/pageType
|
- plugin/pageType
|
||||||
- plugin/component
|
- plugin/component
|
||||||
image:
|
image:
|
||||||
|
new-in-v5: true
|
||||||
---
|
---
|
||||||
|
|
||||||
This plugin provides support for [Obsidian Bases](https://obsidian.md/changelog/2025-04-15-desktop-v1.8.0/) (`.base` files) in Quartz. It reads `.base` files from your vault, resolves matching notes based on the query definition, and renders them as interactive database-like views with support for tables, lists, cards, and maps. It uses the `default` [[layout#Page Frames|page frame]] (three-column layout with sidebars).
|
This plugin provides support for [Obsidian Bases](https://obsidian.md/changelog/2025-04-15-desktop-v1.8.0/) (`.base` files) in Quartz. It reads `.base` files from your vault, resolves matching notes based on the query definition, and renders them as interactive database-like views with support for tables, lists, cards, and maps. It uses the `default` [[layout#Page Frames|page frame]] (three-column layout with sidebars).
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ title: CanvasPage
|
|||||||
tags:
|
tags:
|
||||||
- plugin/pageType
|
- plugin/pageType
|
||||||
image: "#7852ee"
|
image: "#7852ee"
|
||||||
|
new-in-v5: true
|
||||||
---
|
---
|
||||||
|
|
||||||
This plugin is a page type plugin that renders [JSON Canvas](https://jsoncanvas.org) (`.canvas`) files as interactive, pannable and zoomable canvas pages. It uses a custom `"canvas"` [[layout#Page Frames|page frame]] that provides a fullscreen, always-on canvas experience with a togglable left sidebar for navigation. It supports the full [JSON Canvas 1.0 spec](https://jsoncanvas.org/spec/1.0/), including text nodes with Markdown rendering, file nodes that link to other pages in your vault, link nodes for external URLs, and group nodes for visual organization. Edges between nodes are rendered as SVG paths with optional labels, arrow markers, and colors.
|
This plugin is a page type plugin that renders [JSON Canvas](https://jsoncanvas.org) (`.canvas`) files as interactive, pannable and zoomable canvas pages. It uses a custom `"canvas"` [[layout#Page Frames|page frame]] that provides a fullscreen, always-on canvas experience with a togglable left sidebar for navigation. It supports the full [JSON Canvas 1.0 spec](https://jsoncanvas.org/spec/1.0/), including text nodes with Markdown rendering, file nodes that link to other pages in your vault, link nodes for external URLs, and group nodes for visual organization. Edges between nodes are rendered as SVG paths with optional labels, arrow markers, and colors.
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ tags:
|
|||||||
- plugin/transformer
|
- plugin/transformer
|
||||||
- plugin/emitter
|
- plugin/emitter
|
||||||
image: "#FF1493"
|
image: "#FF1493"
|
||||||
|
new-in-v5: true
|
||||||
---
|
---
|
||||||
|
|
||||||
Password-protected encrypted pages. Encrypts page content at build time using AES-256-GCM and decrypts client-side with the Web Crypto API. Passwords are set per-page via frontmatter. A companion emitter writes an encrypted shadow content index so unlisted encrypted pages can be dynamically revealed in graph, explorer, and search after a successful decryption — without ever leaking their metadata to visitors who do not hold the password.
|
Password-protected encrypted pages. Encrypts page content at build time using AES-256-GCM and decrypts client-side with the Web Crypto API. Passwords are set per-page via frontmatter. A companion emitter writes an encrypted shadow content index so unlisted encrypted pages can be dynamically revealed in graph, explorer, and search after a successful decryption — without ever leaking their metadata to visitors who do not hold the password.
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ title: NoteProperties
|
|||||||
tags:
|
tags:
|
||||||
- plugin/component
|
- plugin/component
|
||||||
image:
|
image:
|
||||||
|
new-in-v5: true
|
||||||
---
|
---
|
||||||
|
|
||||||
The NoteProperties plugin is documented under [[Frontmatter]].
|
The NoteProperties plugin is documented under [[Frontmatter]].
|
||||||
|
|||||||
98
docs/plugins/Plugins.base
Normal file
98
docs/plugins/Plugins.base
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
filters:
|
||||||
|
and:
|
||||||
|
- file.ext == "md"
|
||||||
|
- file.inFolder("plugins")
|
||||||
|
- "!file.name.startsWith('index')"
|
||||||
|
- "!file.name.contains('Demo')"
|
||||||
|
formulas:
|
||||||
|
category: |
|
||||||
|
if(file.hasTag("plugin/transformer"), "Transformer",
|
||||||
|
if(file.hasTag("plugin/filter"), "Filter",
|
||||||
|
if(file.hasTag("plugin/pageType"), "Page Type",
|
||||||
|
if(file.hasTag("plugin/emitter"), "Emitter",
|
||||||
|
if(file.hasTag("plugin/component"), "Component",
|
||||||
|
"Other")))))
|
||||||
|
source: |
|
||||||
|
if(file.hasTag("plugin/transformer"), "community",
|
||||||
|
if(file.hasTag("plugin/filter"), "community",
|
||||||
|
if(file.hasTag("plugin/pageType"), "community",
|
||||||
|
if(file.hasTag("plugin/emitter"), "community",
|
||||||
|
if(file.hasTag("plugin/component"), "community",
|
||||||
|
"internal")))))
|
||||||
|
properties:
|
||||||
|
title:
|
||||||
|
displayName: Plugin
|
||||||
|
formula.category:
|
||||||
|
displayName: Type
|
||||||
|
description:
|
||||||
|
displayName: Description
|
||||||
|
views:
|
||||||
|
- type: table
|
||||||
|
name: All Plugins
|
||||||
|
groupBy:
|
||||||
|
property: formula.category
|
||||||
|
direction: ASC
|
||||||
|
order:
|
||||||
|
- title
|
||||||
|
- formula.category
|
||||||
|
- description
|
||||||
|
sort:
|
||||||
|
- property: formula.category
|
||||||
|
direction: ASC
|
||||||
|
- property: title
|
||||||
|
direction: ASC
|
||||||
|
- type: table
|
||||||
|
name: Transformers
|
||||||
|
filters:
|
||||||
|
and:
|
||||||
|
- file.hasTag("plugin/transformer")
|
||||||
|
order:
|
||||||
|
- title
|
||||||
|
- description
|
||||||
|
sort:
|
||||||
|
- property: title
|
||||||
|
direction: ASC
|
||||||
|
- type: table
|
||||||
|
name: Filters
|
||||||
|
filters:
|
||||||
|
and:
|
||||||
|
- file.hasTag("plugin/filter")
|
||||||
|
order:
|
||||||
|
- title
|
||||||
|
- description
|
||||||
|
sort:
|
||||||
|
- property: title
|
||||||
|
direction: ASC
|
||||||
|
- type: table
|
||||||
|
name: Page Types
|
||||||
|
filters:
|
||||||
|
and:
|
||||||
|
- file.hasTag("plugin/pageType")
|
||||||
|
order:
|
||||||
|
- title
|
||||||
|
- description
|
||||||
|
sort:
|
||||||
|
- property: title
|
||||||
|
direction: ASC
|
||||||
|
- type: table
|
||||||
|
name: Emitters
|
||||||
|
filters:
|
||||||
|
and:
|
||||||
|
- file.hasTag("plugin/emitter")
|
||||||
|
order:
|
||||||
|
- title
|
||||||
|
- description
|
||||||
|
sort:
|
||||||
|
- property: title
|
||||||
|
direction: ASC
|
||||||
|
- type: table
|
||||||
|
name: Components
|
||||||
|
filters:
|
||||||
|
and:
|
||||||
|
- file.hasTag("plugin/component")
|
||||||
|
order:
|
||||||
|
- title
|
||||||
|
- description
|
||||||
|
sort:
|
||||||
|
- property: title
|
||||||
|
direction: ASC
|
||||||
@@ -3,6 +3,7 @@ title: ReaderMode
|
|||||||
tags:
|
tags:
|
||||||
- plugin/component
|
- plugin/component
|
||||||
image:
|
image:
|
||||||
|
new-in-v5: true
|
||||||
---
|
---
|
||||||
|
|
||||||
Distraction-free reading mode.
|
Distraction-free reading mode.
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ title: Spacer
|
|||||||
tags:
|
tags:
|
||||||
- plugin/component
|
- plugin/component
|
||||||
image:
|
image:
|
||||||
|
new-in-v5: true
|
||||||
---
|
---
|
||||||
|
|
||||||
This plugin renders a flexible spacer element that pushes adjacent components apart within a layout group. It uses CSS `flex: 2 1 auto` to fill available space, making it useful for spacing out items in toolbars or sidebars (for example, separating the search bar from the darkmode toggle in the left sidebar toolbar).
|
This plugin renders a flexible spacer element that pushes adjacent components apart within a layout group. It uses CSS `flex: 2 1 auto` to fill available space, making it useful for spacing out items in toolbars or sidebars (for example, separating the search bar from the darkmode toggle in the left sidebar toolbar).
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ title: StackedPages
|
|||||||
tags:
|
tags:
|
||||||
- plugin/component
|
- plugin/component
|
||||||
image:
|
image:
|
||||||
|
new-in-v5: true
|
||||||
---
|
---
|
||||||
|
|
||||||
Andy Matuschak-style stacked pages (sliding panes). Clicking internal links opens pages side by side in a horizontal stack, allowing you to trace your path through your notes. Each pane shows a full page and can be individually scrolled or closed.
|
Andy Matuschak-style stacked pages (sliding panes). Clicking internal links opens pages side by side in a horizontal stack, allowing you to trace your path through your notes. Each pane shows a full page and can be individually scrolled or closed.
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ title: UnlistedPages
|
|||||||
tags:
|
tags:
|
||||||
- plugin/transformer
|
- plugin/transformer
|
||||||
image:
|
image:
|
||||||
|
new-in-v5: true
|
||||||
---
|
---
|
||||||
|
|
||||||
Zero-config transformer that makes `unlisted: true` in a page's frontmatter a first-class way to opt out of every listing surface on your site. The page is still emitted as HTML and remains accessible by direct URL, but is absent from `contentIndex.json`, RSS, sitemap, graph, explorer, search, backlinks, recent notes, folder listings, and tag listings.
|
Zero-config transformer that makes `unlisted: true` in a page's frontmatter a first-class way to opt out of every listing surface on your site. The page is still emitted as HTML and remains accessible by direct URL, but is absent from `contentIndex.json`, RSS, sitemap, graph, explorer, search, backlinks, recent notes, folder listings, and tag listings.
|
||||||
|
|||||||
@@ -22,77 +22,7 @@ Quartz plugins fall into several categories:
|
|||||||
|
|
||||||
## First-party plugins
|
## First-party plugins
|
||||||
|
|
||||||
### Transformers
|
![[Plugins.base]]
|
||||||
|
|
||||||
| Plugin | Repository | Enabled | Required | Description |
|
> [!note] Multi-category plugins
|
||||||
| -------------------------------- | --------------------------------------------------------------------------------------------------------------- | :-----: | :------: | -------------------------------------------------------------------------------------------- |
|
> Some plugins span multiple categories. **TableOfContents** is both a transformer and a component. **EncryptedPages** is a transformer, emitter, and component. They appear in each relevant category above.
|
||||||
| [[Frontmatter\|Note Properties]] | [`quartz-community/note-properties`](https://github.com/quartz-community/note-properties) | ✅ | ✅ | Parses frontmatter and displays note properties. |
|
|
||||||
| [[CreatedModifiedDate]] | [`quartz-community/created-modified-date`](https://github.com/quartz-community/created-modified-date) | ✅ | ❌ | Determines creation and modification dates. |
|
|
||||||
| [[SyntaxHighlighting]] | [`quartz-community/syntax-highlighting`](https://github.com/quartz-community/syntax-highlighting) | ✅ | ❌ | Syntax highlighting for code blocks. |
|
|
||||||
| [[ObsidianFlavoredMarkdown]] | [`quartz-community/obsidian-flavored-markdown`](https://github.com/quartz-community/obsidian-flavored-markdown) | ✅ | ❌ | Obsidian-specific Markdown extensions. |
|
|
||||||
| [[GitHubFlavoredMarkdown]] | [`quartz-community/github-flavored-markdown`](https://github.com/quartz-community/github-flavored-markdown) | ✅ | ❌ | GitHub Flavored Markdown support. |
|
|
||||||
| [[TableOfContents]] | [`quartz-community/table-of-contents`](https://github.com/quartz-community/table-of-contents) | ✅ | ❌ | Generates table of contents data from headings.¹ |
|
|
||||||
| [[CrawlLinks]] | [`quartz-community/crawl-links`](https://github.com/quartz-community/crawl-links) | ✅ | ⚠️ | Parses and resolves links. Removing it is not recommended. |
|
|
||||||
| [[Description]] | [`quartz-community/description`](https://github.com/quartz-community/description) | ✅ | ❌ | Generates page descriptions for metadata. |
|
|
||||||
| [[UnlistedPages]] | [`quartz-community/unlisted-pages`](https://github.com/quartz-community/unlisted-pages) | ✅ | ❌ | Bridges `frontmatter.unlisted` to `file.data.unlisted` so any page can opt out of discovery. |
|
|
||||||
| [[plugins/Latex\|Latex]] | [`quartz-community/latex`](https://github.com/quartz-community/latex) | ✅ | ❌ | Renders LaTeX math expressions. |
|
|
||||||
| [[EncryptedPages]] | [`quartz-community/encrypted-pages`](https://github.com/quartz-community/encrypted-pages) | ✅ | ❌ | Password-protected encrypted pages with shadow content index.² |
|
|
||||||
| [[plugins/Citations\|Citations]] | [`quartz-community/citations`](https://github.com/quartz-community/citations) | ❌ | ❌ | Academic citation support via BibTeX. |
|
|
||||||
| [[HardLineBreaks]] | [`quartz-community/hard-line-breaks`](https://github.com/quartz-community/hard-line-breaks) | ❌ | ❌ | Treats single newlines as hard line breaks. |
|
|
||||||
| [[OxHugoFlavoredMarkdown]] | [`quartz-community/ox-hugo`](https://github.com/quartz-community/ox-hugo) | ❌ | ❌ | ox-hugo Markdown compatibility. |
|
|
||||||
| [[RoamFlavoredMarkdown]] | [`quartz-community/roam`](https://github.com/quartz-community/roam) | ❌ | ❌ | Roam Research Markdown compatibility. |
|
|
||||||
|
|
||||||
### Filters
|
|
||||||
|
|
||||||
| Plugin | Repository | Enabled | Required | Description |
|
|
||||||
| ------------------- | ------------------------------------------------------------------------------------------- | :-----: | :------: | --------------------------------------- |
|
|
||||||
| [[RemoveDrafts]] | [`quartz-community/remove-draft`](https://github.com/quartz-community/remove-draft) | ✅ | ❌ | Filters out pages marked as drafts. |
|
|
||||||
| [[ExplicitPublish]] | [`quartz-community/explicit-publish`](https://github.com/quartz-community/explicit-publish) | ❌ | ❌ | Only publishes pages explicitly marked. |
|
|
||||||
|
|
||||||
### Page Types
|
|
||||||
|
|
||||||
| Plugin | Repository | Enabled | Required | Description |
|
|
||||||
| --------------- | ----------------------------------------------------------------------------------- | :-----: | :------: | ----------------------------------------------- |
|
|
||||||
| [[ContentPage]] | [`quartz-community/content-page`](https://github.com/quartz-community/content-page) | ✅ | ❌ | Generates HTML pages for Markdown content. |
|
|
||||||
| [[FolderPage]] | [`quartz-community/folder-page`](https://github.com/quartz-community/folder-page) | ✅ | ❌ | Generates folder listing pages. |
|
|
||||||
| [[TagPage]] | [`quartz-community/tag-page`](https://github.com/quartz-community/tag-page) | ✅ | ❌ | Generates tag listing pages. |
|
|
||||||
| [[CanvasPage]] | [`quartz-community/canvas-page`](https://github.com/quartz-community/canvas-page) | ✅ | ❌ | Renders JSON Canvas files as interactive pages. |
|
|
||||||
| [[BasesPage]] | [`quartz-community/bases-page`](https://github.com/quartz-community/bases-page) | ✅ | ❌ | Renders Obsidian Bases files as database views. |
|
|
||||||
|
|
||||||
### Emitters
|
|
||||||
|
|
||||||
| Plugin | Repository | Enabled | Required | Description |
|
|
||||||
| ---------------------------- | ----------------------------------------------------------------------------------------- | :-----: | :------: | ------------------------------------------------------------ |
|
|
||||||
| [[AliasRedirects]] | [`quartz-community/alias-redirects`](https://github.com/quartz-community/alias-redirects) | ✅ | ❌ | Generates redirect pages for aliases. |
|
|
||||||
| [[ContentIndex]] | [`quartz-community/content-index`](https://github.com/quartz-community/content-index) | ✅ | ❌ | Generates sitemap, RSS feed, and content index. |
|
|
||||||
| [[Favicon]] | [`quartz-community/favicon`](https://github.com/quartz-community/favicon) | ✅ | ❌ | Emits the site favicon. |
|
|
||||||
| [[CustomOgImages\|OG Image]] | [`quartz-community/og-image`](https://github.com/quartz-community/og-image) | ✅ | ❌ | Generates Open Graph social preview images. |
|
|
||||||
| [[CNAME]] | [`quartz-community/cname`](https://github.com/quartz-community/cname) | ✅ | ❌ | Emits a CNAME file for custom domains. |
|
|
||||||
| [[EncryptedPages]]² | [`quartz-community/encrypted-pages`](https://github.com/quartz-community/encrypted-pages) | ✅ | ❌ | Emits the shadow content index for unlisted encrypted pages. |
|
|
||||||
|
|
||||||
### Components
|
|
||||||
|
|
||||||
| Plugin | Repository | Enabled | Required | Description |
|
|
||||||
| ------------------------------------ | --------------------------------------------------------------------------------------------- | :-----: | :------: | ------------------------------------------------ |
|
|
||||||
| [[ArticleTitle]] | [`quartz-community/article-title`](https://github.com/quartz-community/article-title) | ✅ | ❌ | Renders the article title as an h1 heading. |
|
|
||||||
| [[ContentMeta]] | [`quartz-community/content-meta`](https://github.com/quartz-community/content-meta) | ✅ | ❌ | Displays creation date and reading time. |
|
|
||||||
| [[TagList]] | [`quartz-community/tag-list`](https://github.com/quartz-community/tag-list) | ❌ | ❌ | Renders tags as clickable links. |
|
|
||||||
| [[PageTitle]] | [`quartz-community/page-title`](https://github.com/quartz-community/page-title) | ✅ | ❌ | Renders the site title as a home link. |
|
|
||||||
| [[plugins/Darkmode\|Darkmode]] | [`quartz-community/darkmode`](https://github.com/quartz-community/darkmode) | ✅ | ❌ | Toggle between light and dark themes. |
|
|
||||||
| [[reader mode\|Reader Mode]] | [`quartz-community/reader-mode`](https://github.com/quartz-community/reader-mode) | ✅ | ❌ | Distraction-free reading mode toggle. |
|
|
||||||
| [[plugins/Explorer\|Explorer]] | [`quartz-community/explorer`](https://github.com/quartz-community/explorer) | ✅ | ❌ | File tree explorer sidebar. |
|
|
||||||
| [[graph view\|Graph View]] | [`quartz-community/graph`](https://github.com/quartz-community/graph) | ✅ | ❌ | Interactive link graph visualization. |
|
|
||||||
| [[full-text search\|Search]] | [`quartz-community/search`](https://github.com/quartz-community/search) | ✅ | ❌ | Full-text search functionality. |
|
|
||||||
| [[plugins/Backlinks\|Backlinks]] | [`quartz-community/backlinks`](https://github.com/quartz-community/backlinks) | ✅ | ❌ | Shows pages that link to the current page. |
|
|
||||||
| [[plugins/Breadcrumbs\|Breadcrumbs]] | [`quartz-community/breadcrumbs`](https://github.com/quartz-community/breadcrumbs) | ✅ | ❌ | Breadcrumb navigation trail. |
|
|
||||||
| [[plugins/Comments\|Comments]] | [`quartz-community/comments`](https://github.com/quartz-community/comments) | ❌ | ❌ | Comment system integration (Giscus, etc.). |
|
|
||||||
| [[Footer]] | [`quartz-community/footer`](https://github.com/quartz-community/footer) | ✅ | ❌ | Page footer with configurable links. |
|
|
||||||
| [[RecentNotes\|Recent Notes]] | [`quartz-community/recent-notes`](https://github.com/quartz-community/recent-notes) | ❌ | ❌ | Displays a list of recently modified notes. |
|
|
||||||
| [[Spacer]] | [`quartz-community/spacer`](https://github.com/quartz-community/spacer) | ✅ | ❌ | Flexible spacer for layout groups. |
|
|
||||||
| [[TableOfContents]]¹ | [`quartz-community/table-of-contents`](https://github.com/quartz-community/table-of-contents) | ✅ | ❌ | Renders the table of contents in the layout. |
|
|
||||||
| [[EncryptedPages]]² | [`quartz-community/encrypted-pages`](https://github.com/quartz-community/encrypted-pages) | ✅ | ❌ | Renders the password prompt for encrypted pages. |
|
|
||||||
| [[StackedPages]] | [`quartz-community/stacked-pages`](https://github.com/quartz-community/stacked-pages) | ✅ | ❌ | Andy Matuschak-style stacked sliding panes. |
|
|
||||||
|
|
||||||
> ¹ TableOfContents is a dual-category plugin (transformer + component). It appears in both the Transformers and Components tables.
|
|
||||||
>
|
|
||||||
> ² EncryptedPages is a tri-category plugin (transformer + emitter + component). The transformer encrypts page content at build time, the emitter writes the shadow content index for unlisted encrypted pages, and the component renders the password prompt UI. It appears in the Transformers, Emitters, and Components tables.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user