Cheatsheet for configuring and extending quartz beyond the defaults. See quartz-installation for setup.


Override a plugin’s behaviour

Call the plugin’s constructor directly in quartz.ts instead of relying on the config-driven defaults. This lets you pass options a plugin exposes but that quartz.config.ts doesn’t surface.

Warning

Plugin constructor calls must run before loadQuartzConfig(). Quartz resolves plugin registration at that point, so anything called after it has no effect.

import { loadQuartzConfig, loadQuartzLayout } from "./quartz/plugins/loader/config-loader"
import * as ExternalPlugin from "./.quartz/plugins"
 
ExternalPlugin.Explorer({
    filterFn: (node: { slugSegment: string }) => {
        const isBlogFolder = node.slugSegment === "posts"
        return !(isBlogFolder || node.slugSegment === "tags")
    },
})
 
const config = await loadQuartzConfig()
export default config
export const layout = await loadQuartzLayout()