| | |
| | | import fs from "fs" |
| | | import { glob } from "../../util/glob" |
| | | import DepGraph from "../../depgraph" |
| | | import { dirname } from "path" |
| | | |
| | | export const Static: QuartzEmitterPlugin = () => ({ |
| | | name: "Static", |
| | |
| | | |
| | | return graph |
| | | }, |
| | | async emit({ argv, cfg }, _content, _resources): Promise<FilePath[]> { |
| | | async *emit({ argv, cfg }, _content) { |
| | | const staticPath = joinSegments(QUARTZ, "static") |
| | | const fps = await glob("**", staticPath, cfg.configuration.ignorePatterns) |
| | | await fs.promises.cp(staticPath, joinSegments(argv.output, "static"), { |
| | | recursive: true, |
| | | dereference: true, |
| | | }) |
| | | return fps.map((fp) => joinSegments(argv.output, "static", fp)) as FilePath[] |
| | | const outputStaticPath = joinSegments(argv.output, "static") |
| | | await fs.promises.mkdir(outputStaticPath, { recursive: true }) |
| | | for (const fp of fps) { |
| | | const src = joinSegments(staticPath, fp) as FilePath |
| | | const dest = joinSegments(outputStaticPath, fp) as FilePath |
| | | await fs.promises.mkdir(dirname(dest), { recursive: true }) |
| | | await fs.promises.copyFile(src, dest) |
| | | yield dest |
| | | } |
| | | }, |
| | | }) |