Striven
yesterday c538c151c7462ad0395ff2c15c5e11e89e362aa8
quartz/plugins/emitters/favicon.ts
@@ -1,16 +1,22 @@
import sharp from "sharp"
import { joinSegments, QUARTZ, FilePath } from "../../util/path"
import { joinSegments, QUARTZ, FullSlug } from "../../util/path"
import { QuartzEmitterPlugin } from "../types"
import { write } from "./helpers"
import { BuildCtx } from "../../util/ctx"
export const Favicon: QuartzEmitterPlugin = () => ({
  name: "Favicon",
  async *emit({ argv }) {
    const iconPath = joinSegments(QUARTZ, "static", "icon.png")
    const dest = joinSegments(argv.output, "favicon.ico") as FilePath
    await sharp(iconPath).resize(48, 48).toFormat("png").toFile(dest)
    const faviconContent = sharp(iconPath).resize(48, 48).toFormat("png")
    yield dest
    yield write({
      ctx: { argv } as BuildCtx,
      slug: "favicon" as FullSlug,
      ext: ".ico",
      content: faviconContent,
    })
  },
  async *partialEmit() {},
})