From fe353d946bd90d38647a9dceff7ea85d425e8a83 Mon Sep 17 00:00:00 2001
From: kabirgh <15871468+kabirgh@users.noreply.github.com>
Date: Fri, 09 Feb 2024 15:07:32 +0000
Subject: [PATCH] feat(experimental): partial rebuilds (#716)
---
quartz/plugins/emitters/cname.ts | 38 +++++++++++++++++++++++---------------
1 files changed, 23 insertions(+), 15 deletions(-)
diff --git a/quartz/plugins/emitters/cname.ts b/quartz/plugins/emitters/cname.ts
index c783dfb..cbed2a8 100644
--- a/quartz/plugins/emitters/cname.ts
+++ b/quartz/plugins/emitters/cname.ts
@@ -1,25 +1,33 @@
+import { FilePath, joinSegments } from "../../util/path"
import { QuartzEmitterPlugin } from "../types"
+import fs from "fs"
+import chalk from "chalk"
+import DepGraph from "../../depgraph"
-interface Options {
- domain: string
+export function extractDomainFromBaseUrl(baseUrl: string) {
+ const url = new URL(`https://${baseUrl}`)
+ return url.hostname
}
-export const CNAME: QuartzEmitterPlugin<Options> = (opts?: Options) => ({
+export const CNAME: QuartzEmitterPlugin = () => ({
name: "CNAME",
getQuartzComponents() {
return []
},
- async emit(_contentFolder, _cfg, _content, _resources, emit): Promise<string[]> {
- const slug = "CNAME"
-
- if (opts?.domain) {
- await emit({
- content: opts?.domain,
- slug,
- ext: "",
- })
+ async getDependencyGraph(_ctx, _content, _resources) {
+ return new DepGraph<FilePath>()
+ },
+ async emit({ argv, cfg }, _content, _resources): Promise<FilePath[]> {
+ if (!cfg.configuration.baseUrl) {
+ console.warn(chalk.yellow("CNAME emitter requires `baseUrl` to be set in your configuration"))
+ return []
}
-
- return ["CNAME"]
- }
+ const path = joinSegments(argv.output, "CNAME")
+ const content = extractDomainFromBaseUrl(cfg.configuration.baseUrl)
+ if (!content) {
+ return []
+ }
+ fs.writeFileSync(path, content)
+ return [path] as FilePath[]
+ },
})
--
Gitblit v1.10.0