Adaptively include font subset for PageTitle

This commit is contained in:
Felix Nie 2025-03-19 01:40:04 +08:00
parent 0514cf752c
commit 2931e25fc0
2 changed files with 11 additions and 10 deletions

View File

@ -45,7 +45,9 @@ export default (() => {
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" />
<link rel="stylesheet" href={googleFontHref(cfg.theme)} />
<link rel="stylesheet" href={googleFontSubsetHref(cfg.theme, cfg.pageTitle)} />
{cfg.theme.typography.title && (
<link rel="stylesheet" href={googleFontSubsetHref(cfg.theme, cfg.pageTitle)} />
)}
</>
)}
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossOrigin="anonymous" />

View File

@ -212,15 +212,14 @@ export const ComponentResources: QuartzEmitterPlugin = () => {
} else if (cfg.theme.fontOrigin === "googleFonts" && !cfg.theme.cdnCaching) {
// when cdnCaching is true, we link to google fonts in Head.tsx
const theme = ctx.cfg.configuration.theme
const title = ctx.cfg.configuration.pageTitle
const fontResponse = await fetch(googleFontHref(theme))
googleFontsStyleSheet = await fontResponse.text()
const fontSubsetResponse = await fetch(googleFontSubsetHref(theme, title))
const googleFontSubsetStyleSheet = await fontSubsetResponse.text()
googleFontsStyleSheet = `${googleFontsStyleSheet}\n${googleFontSubsetStyleSheet}`
const response = await fetch(googleFontHref(theme))
googleFontsStyleSheet = await response.text()
if (theme.typography.title) {
const title = ctx.cfg.configuration.pageTitle
const response = await fetch(googleFontSubsetHref(theme, title))
googleFontsStyleSheet += `\n${await response.text()}`
}
if (!cfg.baseUrl) {
throw new Error(