diff --git a/quartz/components/Head.tsx b/quartz/components/Head.tsx index 8036f23b8fb41..4b82b426d1974 100644 --- a/quartz/components/Head.tsx +++ b/quartz/components/Head.tsx @@ -1,55 +1,55 @@ -import { i18n } from "../i18n" -import { FullSlug, joinSegments, pathToRoot, sluggify } from "../util/path" -import { JSResourceToScriptElement } from "../util/resources" -import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types" +import { i18n } from "../i18n"; +import { FullSlug, joinSegments, pathToRoot, sluggify } from "../util/path"; +import { JSResourceToScriptElement } from "../util/resources"; +import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types"; export default (() => { - const Head: QuartzComponent = ({ cfg, fileData, externalResources }: QuartzComponentProps) => { - const title = fileData.frontmatter?.title ?? i18n(cfg.locale).propertyDefaults.title - const description = - fileData.description?.trim() ?? i18n(cfg.locale).propertyDefaults.description - const { css, js } = externalResources + const Head: QuartzComponent = ({ cfg, fileData, externalResources }: QuartzComponentProps) => { + const title = fileData.frontmatter?.title ?? i18n(cfg.locale).propertyDefaults.title; + const description = + fileData.description?.trim() ?? i18n(cfg.locale).propertyDefaults.description; + const { css, js } = externalResources; - const url = new URL(`https://${cfg.baseUrl ?? "example.com"}`) - const path = url.pathname as FullSlug - const baseDir = fileData.slug === "404" ? path : pathToRoot(fileData.slug!) + const url = new URL(`https://${cfg.baseUrl ?? "example.com"}`); + const path = url.pathname as FullSlug; + const baseDir = fileData.slug === "404" ? path : pathToRoot(fileData.slug!); - const iconPath = joinSegments(baseDir, "static/icon.png") - let ogImagePath = `https://${cfg.baseUrl}/static/og-image.png` - if (cfg.ogImageDir) { - const contentDir = `https://${cfg.baseUrl}/${cfg.ogImageDir}/` - ogImagePath = fileData?.frontmatter?.image - ? sluggify(`${contentDir}${(fileData.frontmatter.image as string).trim()}`) - : `https://${cfg.baseUrl}/static/og-image.png` - } - return ( - - {title} - - {cfg.theme.cdnCaching && ( - <> - - - - )} - - - - {cfg.baseUrl && } - - - - - - {css.map((href) => ( - - ))} - {js - .filter((resource) => resource.loadTime === "beforeDOMReady") - .map((res) => JSResourceToScriptElement(res, true))} - - ) - } + const iconPath = joinSegments(baseDir, "static/icon.png"); + let ogImagePath = `https://${cfg.baseUrl}/static/og-image.png`; + if (cfg.ogImageDir) { + const contentDir = `https://${cfg.baseUrl}/${cfg.ogImageDir}/`; + ogImagePath = fileData?.frontmatter?.image + ? sluggify(`${contentDir}${(fileData.frontmatter.image as string).trim()}`) + : `https://${cfg.baseUrl}/static/og-image.png`; + } + return ( + + {title} + + {cfg.theme.cdnCaching && ( + <> + + + + )} + + + + {cfg.baseUrl && } + + + + + + {css.map((href) => ( + + ))} + {js + .filter((resource) => resource.loadTime === "beforeDOMReady") + .map((res) => JSResourceToScriptElement(res, true))} + + ); + }; - return Head -}) satisfies QuartzComponentConstructor + return Head; +}) satisfies QuartzComponentConstructor;