| | |
| | | await rimraf(argv.output) |
| | | const parsedFiles = [...contentMap.values()] |
| | | const filteredContent = filterContent(ctx, parsedFiles) |
| | | await emitContent( |
| | | ctx, |
| | | filteredContent, |
| | | ) |
| | | await emitContent(ctx, filteredContent) |
| | | console.log(chalk.green(`Done rebuilding in ${perf.timeSince()}`)) |
| | | } catch { |
| | | console.log(chalk.yellow(`Rebuild failed. Waiting on a change to fix the error...`)) |
| | |
| | | getQuartzComponents() { |
| | | return [] |
| | | }, |
| | | async emit({argv}, content, _resources, emit): Promise<FilePath[]> { |
| | | async emit({ argv }, content, _resources, emit): Promise<FilePath[]> { |
| | | const fps: FilePath[] = [] |
| | | |
| | | for (const [_tree, file] of content) { |
| | |
| | | import { globbyStream } from "globby" |
| | | import { |
| | | FilePath, slugifyFilePath, |
| | | } from "../../path" |
| | | import { FilePath, slugifyFilePath } from "../../path" |
| | | import { QuartzEmitterPlugin } from "../types" |
| | | import path from "path" |
| | | import fs from "fs" |
| | |
| | | export { ContentIndex } from "./contentIndex" |
| | | export { AliasRedirects } from "./aliases" |
| | | export { Assets } from "./assets" |
| | | export { Static } from "./static" |
| | | export { Static } from "./static" |
| | |
| | | import { globby } from "globby" |
| | | import { |
| | | FilePath, QUARTZ |
| | | } from "../../path" |
| | | import { FilePath, QUARTZ } from "../../path" |
| | | import { QuartzEmitterPlugin } from "../types" |
| | | import path from "path" |
| | | import fs from "fs" |
| | | |
| | | |
| | | export const Static: QuartzEmitterPlugin = () => ({ |
| | | name: "Static", |
| | | getQuartzComponents() { |
| | |
| | | const staticPath = path.join(QUARTZ, "static") |
| | | const fps = await globby("*", { cwd: staticPath }) |
| | | await fs.promises.cp(staticPath, path.join(argv.output, "static"), { recursive: true }) |
| | | return fps.map(fp => path.join("static", fp)) as FilePath[] |
| | | return fps.map((fp) => path.join("static", fp)) as FilePath[] |
| | | }, |
| | | }) |
| | |
| | | } |
| | | } |
| | | |
| | | export async function emitContent( |
| | | ctx: BuildCtx, |
| | | content: ProcessedContent[], |
| | | ) { |
| | | const { argv, cfg }= ctx |
| | | export async function emitContent(ctx: BuildCtx, content: ProcessedContent[]) { |
| | | const { argv, cfg } = ctx |
| | | const contentFolder = argv.directory |
| | | const perf = new PerfTimer() |
| | | const log = new QuartzLogger(ctx.argv.verbose) |
| | |
| | | // emitter plugins |
| | | for (const emitter of cfg.plugins.emitters) { |
| | | try { |
| | | const emitted = await emitter.emit( |
| | | ctx, |
| | | content, |
| | | staticResources, |
| | | emit, |
| | | ) |
| | | const emitted = await emitter.emit(ctx, content, staticResources, emit) |
| | | emittedFiles += emitted.length |
| | | |
| | | if (ctx.argv.verbose) { |