mirror of
https://gitlab.com/MisterBiggs/brain-quartz.git
synced 2025-07-22 06:11:23 +00:00
.github
content
docs
quartz
cli
components
i18n
plugins
emitters
404.tsx
aliases.ts
assets.ts
cname.ts
componentResources.ts
contentIndex.ts
contentPage.tsx
folderPage.tsx
helpers.ts
index.ts
static.ts
tagPage.tsx
filters
transformers
index.ts
types.ts
vfile.ts
processors
static
styles
util
bootstrap-cli.mjs
bootstrap-worker.mjs
build.ts
cfg.ts
worker.ts
.gitattributes
.gitignore
.npmrc
.prettierignore
.prettierrc
CODE_OF_CONDUCT.md
Dockerfile
LICENSE.txt
README.md
globals.d.ts
index.d.ts
package-lock.json
package.json
quartz.config.ts
quartz.layout.ts
tsconfig.json
* Change emit from callback to helpers file function * Update docs, remove commented code, improve type sig
30 lines
869 B
TypeScript
30 lines
869 B
TypeScript
import { FilePath, joinSegments } from "../../util/path"
|
|
import { QuartzEmitterPlugin } from "../types"
|
|
import fs from "fs"
|
|
import chalk from "chalk"
|
|
|
|
export function extractDomainFromBaseUrl(baseUrl: string) {
|
|
const url = new URL(`https://${baseUrl}`)
|
|
return url.hostname
|
|
}
|
|
|
|
export const CNAME: QuartzEmitterPlugin = () => ({
|
|
name: "CNAME",
|
|
getQuartzComponents() {
|
|
return []
|
|
},
|
|
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 []
|
|
}
|
|
const path = joinSegments(argv.output, "CNAME")
|
|
const content = extractDomainFromBaseUrl(cfg.configuration.baseUrl)
|
|
if (!content) {
|
|
return []
|
|
}
|
|
fs.writeFileSync(path, content)
|
|
return [path] as FilePath[]
|
|
},
|
|
})
|