Initial import

This commit is contained in:
Admin
2026-07-11 17:08:37 +00:00
commit 03e5f3452b
303 changed files with 43365 additions and 0 deletions
@@ -0,0 +1,146 @@
---
title: Plugins
image:
---
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|Configuration]] 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`](https://github.com/quartz-community). In TS overrides, they use `ExternalPlugin.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
```base
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.