mirror of
https://github.com/jackyzha0/quartz.git
synced 2026-07-22 03:00:29 +00:00
3.8 KiB
3.8 KiB
| title | image |
|---|---|
| Plugins |
Quartz's functionality is provided by a collection of first-party community plugins. Each plugin can be enabled, disabled, and configured via quartz.config.yaml. See configuration#Plugins for details on how to manage plugins.
[!info] Internal vs Community Plugins Quartz has two kinds of plugins:
- Community plugins are standalone repositories under
quartz-community. In TS overrides, they useExternalPlugin.X()(imported from.quartz/plugins).- Internal plugins are built into Quartz core (Assets, Static, ComponentResources, NotFoundPage). In TS overrides, they use
Plugin.X()(imported from./quartz/plugins).
Plugin types
Quartz plugins fall into several categories:
- Transformers process content during the build, e.g. parsing frontmatter, highlighting syntax, or resolving links.
- Filters decide which content files to include or exclude from the output.
- Page Types generate HTML pages — one per content file, folder, tag, canvas, or bases view.
- Components render UI elements in the page layout (sidebars, headers, footers, etc.).
First-party plugins
filters:
and:
- file.ext == "md"
- file.inFolder("plugins")
- "!file.name.startsWith('index')"
- "!file.name.contains('Demo')"
- "!file.name.contains('Static')"
- "!file.name.contains('Assets')"
- "!file.name.contains('ComponentResources')"
- "!file.name.contains('NotFoundPage')"
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")))))
properties:
title:
displayName: Plugin
repository:
displayName: Repository
enabled:
displayName: Enabled
required:
displayName: Required
description:
displayName: Description
views:
- type: table
name: All Plugins
groupBy:
property: formula.category
direction: ASC
order:
- title
- repository
- enabled
- required
- description
sort:
- property: formula.category
direction: ASC
- property: title
direction: ASC
- type: table
name: Transformers
filters:
and:
- file.hasTag("plugin/transformer")
order:
- title
- repository
- enabled
- required
- description
sort:
- property: title
direction: ASC
- type: table
name: Filters
filters:
and:
- file.hasTag("plugin/filter")
order:
- title
- repository
- enabled
- required
- description
sort:
- property: title
direction: ASC
- type: table
name: Page Types
filters:
and:
- file.hasTag("plugin/pageType")
order:
- title
- repository
- enabled
- required
- description
sort:
- property: title
direction: ASC
- type: table
name: Emitters
filters:
and:
- file.hasTag("plugin/emitter")
order:
- title
- repository
- enabled
- required
- description
sort:
- property: title
direction: ASC
- type: table
name: Components
filters:
and:
- file.hasTag("plugin/component")
order:
- title
- repository
- enabled
- required
- description
sort:
- property: title
direction: ASC
[!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.