* doc(favicon): add documentation of favicon plugin * doc(favicon): add missing link to configuration page * fix(favicon): build on public folder don't created
22 lines
631 B
TypeScript
22 lines
631 B
TypeScript
import sharp from "sharp"
|
|
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 faviconContent = sharp(iconPath).resize(48, 48).toFormat("png")
|
|
|
|
yield write({
|
|
ctx: { argv } as BuildCtx,
|
|
slug: "favicon" as FullSlug,
|
|
ext: ".ico",
|
|
content: faviconContent,
|
|
})
|
|
},
|
|
async *partialEmit() {},
|
|
})
|