From c538c151c7462ad0395ff2c15c5e11e89e362aa8 Mon Sep 17 00:00:00 2001
From: Striven <sg.striven@cutecat.club>
Date: Sat, 04 Apr 2026 19:47:16 +0000
Subject: [PATCH] Initial commit
---
quartz/plugins/emitters/cname.ts | 43 ++++++++++++++++++++++++++-----------------
1 files changed, 26 insertions(+), 17 deletions(-)
diff --git a/quartz/plugins/emitters/cname.ts b/quartz/plugins/emitters/cname.ts
index c783dfb..64fdbab 100644
--- a/quartz/plugins/emitters/cname.ts
+++ b/quartz/plugins/emitters/cname.ts
@@ -1,25 +1,34 @@
import { QuartzEmitterPlugin } from "../types"
+import { write } from "./helpers"
+import { styleText } from "util"
+import { FullSlug } from "../../util/path"
-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 emit(ctx) {
+ if (!ctx.cfg.configuration.baseUrl) {
+ console.warn(
+ styleText("yellow", "CNAME emitter requires `baseUrl` to be set in your configuration"),
+ )
+ return []
+ }
+ const content = extractDomainFromBaseUrl(ctx.cfg.configuration.baseUrl)
+ if (!content) {
+ return []
}
- return ["CNAME"]
- }
+ const path = await write({
+ ctx,
+ content,
+ slug: "CNAME" as FullSlug,
+ ext: "",
+ })
+ return [path]
+ },
+ async *partialEmit() {},
})
--
Gitblit v1.10.0