mirror of
https://gitlab.com/MisterBiggs/brain-quartz.git
synced 2025-07-23 23:01:22 +00:00
.github
content
docs
quartz
cli
components
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[]
|
|
},
|
|
})
|