From 2213424195b6ba761a6bf3343afca43b102d06b3 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Thu, 06 Mar 2025 02:34:02 +0000
Subject: [PATCH] docs: make role of getQuartzComponents more clear and also make it optional

---
 quartz/plugins/types.ts                       |    7 ++++++-
 quartz/plugins/emitters/componentResources.ts |    5 +----
 quartz/plugins/emitters/contentIndex.tsx      |    1 -
 quartz/plugins/emitters/assets.ts             |    3 ---
 quartz/plugins/emitters/static.ts             |    3 ---
 quartz/plugins/emitters/aliases.ts            |    4 ----
 quartz/plugins/emitters/cname.ts              |    3 ---
 7 files changed, 7 insertions(+), 19 deletions(-)

diff --git a/quartz/plugins/emitters/aliases.ts b/quartz/plugins/emitters/aliases.ts
index b5bfff0..9d12a99 100644
--- a/quartz/plugins/emitters/aliases.ts
+++ b/quartz/plugins/emitters/aliases.ts
@@ -6,9 +6,6 @@
 
 export const AliasRedirects: QuartzEmitterPlugin = () => ({
   name: "AliasRedirects",
-  getQuartzComponents() {
-    return []
-  },
   async getDependencyGraph(ctx, content, _resources) {
     const graph = new DepGraph<FilePath>()
 
@@ -22,7 +19,6 @@
     return graph
   },
   async emit(ctx, content, _resources): Promise<FilePath[]> {
-    const { argv } = ctx
     const fps: FilePath[] = []
 
     for (const [_tree, file] of content) {
diff --git a/quartz/plugins/emitters/assets.ts b/quartz/plugins/emitters/assets.ts
index 036b27d..bb85080 100644
--- a/quartz/plugins/emitters/assets.ts
+++ b/quartz/plugins/emitters/assets.ts
@@ -15,9 +15,6 @@
 export const Assets: QuartzEmitterPlugin = () => {
   return {
     name: "Assets",
-    getQuartzComponents() {
-      return []
-    },
     async getDependencyGraph(ctx, _content, _resources) {
       const { argv, cfg } = ctx
       const graph = new DepGraph<FilePath>()
diff --git a/quartz/plugins/emitters/cname.ts b/quartz/plugins/emitters/cname.ts
index cbed2a8..380212d 100644
--- a/quartz/plugins/emitters/cname.ts
+++ b/quartz/plugins/emitters/cname.ts
@@ -11,9 +11,6 @@
 
 export const CNAME: QuartzEmitterPlugin = () => ({
   name: "CNAME",
-  getQuartzComponents() {
-    return []
-  },
   async getDependencyGraph(_ctx, _content, _resources) {
     return new DepGraph<FilePath>()
   },
diff --git a/quartz/plugins/emitters/componentResources.ts b/quartz/plugins/emitters/componentResources.ts
index b307aad..6c1e3d0 100644
--- a/quartz/plugins/emitters/componentResources.ts
+++ b/quartz/plugins/emitters/componentResources.ts
@@ -24,7 +24,7 @@
 function getComponentResources(ctx: BuildCtx): ComponentResources {
   const allComponents: Set<QuartzComponent> = new Set()
   for (const emitter of ctx.cfg.plugins.emitters) {
-    const components = emitter.getQuartzComponents(ctx)
+    const components = emitter.getQuartzComponents?.(ctx) ?? []
     for (const component of components) {
       allComponents.add(component)
     }
@@ -200,9 +200,6 @@
 export const ComponentResources: QuartzEmitterPlugin = () => {
   return {
     name: "ComponentResources",
-    getQuartzComponents() {
-      return []
-    },
     async getDependencyGraph(_ctx, _content, _resources) {
       return new DepGraph<FilePath>()
     },
diff --git a/quartz/plugins/emitters/contentIndex.tsx b/quartz/plugins/emitters/contentIndex.tsx
index bd609b4..2810039 100644
--- a/quartz/plugins/emitters/contentIndex.tsx
+++ b/quartz/plugins/emitters/contentIndex.tsx
@@ -196,6 +196,5 @@
         }
       }
     },
-    getQuartzComponents: () => [],
   }
 }
diff --git a/quartz/plugins/emitters/static.ts b/quartz/plugins/emitters/static.ts
index c52c628..5545d2c 100644
--- a/quartz/plugins/emitters/static.ts
+++ b/quartz/plugins/emitters/static.ts
@@ -6,9 +6,6 @@
 
 export const Static: QuartzEmitterPlugin = () => ({
   name: "Static",
-  getQuartzComponents() {
-    return []
-  },
   async getDependencyGraph({ argv, cfg }, _content, _resources) {
     const graph = new DepGraph<FilePath>()
 
diff --git a/quartz/plugins/types.ts b/quartz/plugins/types.ts
index 283a999..e7cfb47 100644
--- a/quartz/plugins/types.ts
+++ b/quartz/plugins/types.ts
@@ -39,7 +39,12 @@
 export type QuartzEmitterPluginInstance = {
   name: string
   emit(ctx: BuildCtx, content: ProcessedContent[], resources: StaticResources): Promise<FilePath[]>
-  getQuartzComponents(ctx: BuildCtx): QuartzComponent[]
+  /**
+   * Returns the components (if any) that are used in rendering the page.
+   * This helps Quartz optimize the page by only including necessary resources
+   * for components that are actually used.
+   */
+  getQuartzComponents?: (ctx: BuildCtx) => QuartzComponent[]
   getDependencyGraph?(
     ctx: BuildCtx,
     content: ProcessedContent[],

--
Gitblit v1.10.0